Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ajuste de las cargas de trabajo de escritura
La implementación del equilibrio de carga y la liberación de la instancia de escritura ayudarán a que la carga de trabajo de escritura tenga un mejor rendimiento durante los picos de uso. Para lograr un mejor rendimiento de escritura con un alto nivel de simultaneidad, siga estos pasos adicionales.
Mueva la integridad referencial a la capa de aplicación
Si bien las comprobaciones de integridad referencial son importantes, con el hiperescalado podrían ser perjudiciales para su carga. Para cada escritura, se deben realizar escaneos adicionales antes de ejecutar la propia escritura, lo que se traduce en un rendimiento deficiente. Si su aplicación requiere controles de integridad estrictos, inclúyalos en la capa de aplicación para evitar que se limiten las escrituras.
Evite el uso de claves principales pesadas
Mantenga sus claves principales ligeras. El motor de almacenamiento InnoDB anexa la clave principal a todos los demás índices que cree en la tabla. Cuando la clave principal es grande, afecta al tamaño del índice. El almacenamiento y la recuperación de las páginas de datos se ralentizarán si la clave principal es muy grande. Un ejemplo común es el uso de identificadores únicos universales como claves principales. Este no es un buen enfoque si el objetivo es el rendimiento en un entorno hiperescalado.
Use el intercambio de particiones para cargar datos en tablas particionadas
Si va a escribir grandes conjuntos de datos en tablas particionadas, la combinación de CARGAR DATOS DE S3 e intercambio de particiones
Eliminar los índices que no se utilizan
InnoDB
Asegúrese de que las versiones antiguas de las filas se depuren de manera eficiente
En la implementación InnoDB del control de concurrencia multiversión (MVCC), cuando se modifica un registro, la versión actual (antigua) de los datos que se están modificando se registra primero como deshacer un registro en un registro de anulación de registro. Un valor creciente de longitud de lista de historial (HLL) indica que los subprocesos de recopilación de elementos no utilizados de InnoDB (subprocesos de depuración) no están a la altura de la carga de trabajo de escritura o que la depuración está bloqueada por una consulta o transacción de larga duración. Cuando la recopilación de elementos no utilizados se bloquea o retrasa, la base de datos puede sufrir un retraso de depuración considerable que puede afectar negativamente al rendimiento de las consultas. Puede utilizar los siguientes consejos para optimizar el proceso de depuración.
-
Mantenga las transacciones pequeñas.
-
Para las consultas de lectura, utilice el nivel de aislamiento READ COMMITTED.
-
Aumente el número de subprocesos de depuración (innodb_purge_threads
e innodb_purge_batch_size ). Tenga en cuenta que el ajuste de estos parámetros requiere un reinicio. -
Monitoree el HLL con frecuencia y resuelva cualquier problema de carga de trabajo que impida que la recopilación de elementos no utilizados avance.
Asegúrese de que el registro no cause más problemas
El registro de consultas general registra las conexiones y desconexiones de los clientes, así como todas las instrucciones recibidas por el servidor en el orden en que se recibieron. Cuando está activado, el registro es sincrónico, lo que puede suponer una penalización sustancial del rendimiento en un sistema ocupado. A menos que sea necesario, se recomienda desactivar el registro general.
El registro de consultas lentas registra las instrucciones que tardaron más que el número de segundos de ejecución long_query_time