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_size
para 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-digest
oumysqldumpslow -s t
Para desempenho do WordPress, adicione este plugin: Melhorias no índice WP