Como encontrar junções realizadas sem índices?

Como encontrar junções realizadas sem índices?

Eu administro um site WordPress no Mariadb 10.6 e recentemente vi um erro Junções realizadas sem índices no Mysqltuner.

Embora o número não seja muito grande, o Mysqltuner recomenda que você continue aumentando o Key_buffer_size.

Porém, meu VPS não tem muita memória livre, então estou resolvendo esse erro com outro problema.

Como tenho dezenas de plug-ins ativos, quero verificar qual plug-in incrível está causando o problema.

Então, em primeiro lugar, habilitei o log de erros da seguinte maneira.

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

E depois de um certo período de tempo, executei pt-query-digest para analisar o log de erros.

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

Mas não consigo descobrir nenhum outro problema.

Entre as muitas consultas no log lento, como determinar qual delas está tentando ingressar em uma coluna sem índice?

Não conheço o banco de dados, então não consigo descobrir apenas olhando a consulta.

Responder1

Para ENCONTRAR SOMENTE junções realizadas sem índices,

No prompt de comando do MySQL, determine os valores atuais para que você possa retornar ao normal após 1 hora de gravação SOMENTE JPWI em seu log de consulta lenta

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

EM UMA 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;

revise sua última hora de registro de consulta lenta para as consultas envolvidas sem índices.

Veja o perfil para obter informações de contato, entre em contato, se precisar de conselhos adicionais, por favor.

A maioria das pessoas NÃO registra consultas lentas e consultas sem índices para evitar a separação do espaguete. OBTENHA UM ou OUTRO, apenas para manter alguma forma de sanidade.

(formatação fixa, a edição precisa de 6 caracteres)

Responder2

Você tem tabelas MyISAM? Se não (e suas tabelasdeveser InnoDB),mais baixo key_buffer_sizepara 30M.

"Junções sem índices" não é necessariamente um problema. Se você temlentoperguntas, isso é mais importante. Veja oLog lento. Ou seja, trabalhar para melhorar omais lento, sejam ou não "junções sem índices". Usar pt-query-digestoumysqldumpslow -s t

Para desempenho do WordPress, adicione este plugin: Melhorias no índice WP

informação relacionada