¿Cómo encontrar uniones realizadas sin índices?

¿Cómo encontrar uniones realizadas sin índices?

Ejecuto un sitio web de WordPress en Mariadb 10.6 y recientemente vi un error de uniones realizadas sin índices en Mysqltuner.

Aunque el número no es muy grande, Mysqltuner recomienda seguir aumentando Key_buffer_size.

Sin embargo, mi VPS no tiene mucha memoria libre, así que estoy solucionando este error con otro problema.

Como tengo docenas de complementos activos, quiero verificar qué complemento increíble está causando el problema.

Entonces, antes que nada, habilité el registro de errores de la siguiente manera.

log-queries-not-using-indexes = 1
log_error = /var/log/mysql/mysql-error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 3

Y después de un cierto período de tiempo, ejecuté pt-query-digest para analizar el registro de errores.

pt-query-digest /var/log/mysql/mysql-slow.log

Pero no puedo encontrar ningún otro problema.

Entre las muchas consultas en el registro lento, ¿cómo se puede determinar cuál intenta unirse con una columna sin índice?

No conozco la base de datos, por lo que no puedo descifrarla con solo mirar la consulta.

Respuesta1

Para ENCONTRAR SÓLO uniones realizadas sin índices,

Desde el símbolo del sistema de MySQL, determine los valores actuales para que pueda volver a la normalidad después de 1 hora de registrar SÓLO JPWI en su registro de consultas lentas.

SELECT @@long_query_time;
SELECT @@min_examined_row_limit;
      write down the above values
  
SET GLOBAL long_query_time=3600;  for a ONE MINUTE slow log trigger
SET GLOBAL min_examined_row_limit=1;   if the query reads one row, consider logging
SET GLOBAL log_queries_not_using_indexes=1;  to get the log you are needing

DENTRO DE UNA HORA,

SET GLOBAL long_query_time=discovered above;
SET GLOBAL min_examined_row_limit=discovered above; 
SET GLOBAL log_queries_not_using_indexes=0;   # to turn OFF feature

FLUSH LOGS;

Vaya a revisar su última hora de Registro de consultas lentas para conocer las consultas involucradas sin índices.

Vea el perfil para obtener información de contacto, póngase en contacto, si necesita asesoramiento adicional, por favor.

La mayoría de las personas NO registran consultas lentas y consultas sin índices para evitar separar los espaguetis. CONSIGUE UNO o el OTRO, sólo para conservar alguna forma de cordura.

(formato fijo, la edición necesita 6 caracteres)

Respuesta2

¿Tienes tablas MyISAM? Si no (y tus mesasdeberíaser InnoDB),más bajo key_buffer_sizea 30M.

Las "uniones sin índices" no son necesariamente un problema. Si usted tienelentoconsultas, eso es más importante. Ver elRegistro lento. Es decir, trabajar para mejorar lael más lento, sean o no "uniones sin índices". Usar pt-query-digestomysqldumpslow -s t

Para el rendimiento de WordPress, agregue este complemento: Mejoras en el índice WP

información relacionada