¿Cómo ver tablas con alto mysql io?
ltscriptgtEC(2); lt/scriptgt;
1. Impacto en el rendimiento causado por el registro:
El impacto directo en el rendimiento causado por el registro La pérdida de rendimiento es la más costosa. Recurso IO en un sistema de base de datos. Los registros de MySQL incluyen ErrorLog, UpdateLog, registro binario, QueryLog, SlowQueryLog, etc. Por supuesto, el registro de actualización sólo está disponible en versiones anteriores de MySQL y ha sido reemplazado por el registro binario.
De forma predeterminada, el sistema solo activa el registro de errores y desactiva todos los demás registros para minimizar las pérdidas de E/S y mejorar el rendimiento del sistema. Pero en escenarios de aplicaciones prácticas un poco más importantes, al menos es necesario activar el registro binario, porque esta es la base para la copia de seguridad incremental de muchos motores de almacenamiento MySQL, y también es la condición básica para que MySQL logre la replicación. A veces, para optimizar aún más el rendimiento y localizar declaraciones SQL que se ejecutan lentamente, muchos sistemas también abrirán registros de consultas lentas y registrarán declaraciones SQL cuyo tiempo de ejecución exceda un cierto valor (establecido por usted mismo).
En términos generales, pocos sistemas en producción activarán registros de consultas. Porque después de activar el registro de consultas, cada consulta ejecutada en MySQL se registrará en el registro, lo que traerá una carga de IO relativamente grande al sistema, pero el beneficio real no es muy grande. Generalmente, solo en el entorno de desarrollo y prueba, donde las declaraciones SQL se utilizan específicamente para ubicar ciertas funciones, los registros se abrirán en un corto período de tiempo para el análisis correspondiente. Por lo tanto, en el sistema MySQL, los registros de MySQL (excluidos los registros de cada motor de almacenamiento) que afectarán el rendimiento son principalmente Binlog.
2. Ejecute las siguientes instrucciones en mysql:
Establezca sincronización global _ binlog = 500
Después de cada 500 envíos de transacciones, MySQL emitirá un fsync El disco La instrucción de sincronización de la clase fuerza que los datos en binlog_cache se escriban en el disco.
Establezca global innodb _ flux _ log _ en _ Trx _ commit = 2
El valor predeterminado 1 significa que el registro debe vaciarse en el disco duro cada vez que se realiza una transacción; Se envía o se emite un comando fuera de la transacción, lo que requiere mucho tiempo. Especialmente cuando se utiliza caché respaldado por batería. Establecer en 2 significa escribir en la memoria caché del sistema en lugar del disco duro. El registro seguirá vaciándose en el disco duro cada segundo, por lo que generalmente no perderá más de 1 o 2 segundos de actualizaciones. Establecerlo en 0 será más rápido, pero menos seguro. Incluso si MySQL se bloquea, es posible que se pierdan datos de transacciones. Establecer el valor en 2 solo provocará la pérdida de datos si todo el sistema operativo no funciona.
Nota: Este comando no será válido después de reiniciar la máquina. Los dos elementos anteriores se pueden configurar cuando se inicia el servicio.