GoDaddy Ajuda

Fizemos o nosso melhor para traduzir esta página para si. A página em inglês também está disponível.

Analise consultas lentas do MySQL

Você ativou o log de consulta lenta e agora tem um registo para rever. Se não tiver ativado o registo, pode encontrar os passos aqui .

Analisar o registo

Localização do registo:
/var/log/slow-queries.log
NOTA: Se não encontrar um registo nesta localização, verifique a entrada no seu my.cnf e se o MySQL foi reiniciado após a alteração ter sido feita.
Formato:
# Time: 210905 6:33:11 # User @ Host: dbuser [dbname] @ hostname [1.2.3.4] # Query_time: 12.116250 Lock_time: 0.000035 Rows_sent: 0 Rows_examined: 201565 use dbname; SET timestamp = 1409898791; ... SLOW QUERY AQUI ...

O registo pode ser opressor quando tem dezenas, senão centenas de entradas no formato acima. Para tornar o log mais legível, use mysqldumpslow para analisar o log.

mysqldumpslow -r -a /var/log/mysql/mysqld.slow.log
A saída conterá informações importantes como hora , linhas e consulta .
Contagem: 2 Tempo = 20,54s (41s) Bloqueio = 0,02s (0s) Linhas = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table ONDE site_user_id = '214380' ORDEM POR site_id DESC LIMIT 0,2 Contagem: 1 Tempo = 21,74s (21s) Bloquear = 0,01s (0s) Linhas = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDENAR POR site_id DESC LIMIT 0,2 Contagem: 1 Vez = 23.86s (23s) Lock = 0.20s (0s) Rows = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDEM POR site_id DESC LIMIT 0,2

Olhando para o exemplo acima, temos 1 consulta que demorou entre 20 e 24 segundos a ser executada. Isto causa problemas com o seu site que vão desde tempos de carregamento lentos até erros de tempo limite (rotação interminável). A consulta está examinando 12.547.802 linhas. Uma consulta grande (ou seja, select *) executada em uma tabela com mais de 12 milhões de linhas provavelmente resultará em uma experiência do usuário insatisfatória. Otimizar a consulta (ou seja, selecionar "mesas de centro") ou reduzir as linhas examinadas (ou seja, arquivar dados antigos) irá acelerar a consulta.

Se o arquivo de log for grande, execute mysqldumpslow e salve a saída em um arquivo. Isto tornará mais fácil rever com outras ferramentas de manipulação de ficheiros, como grep ou find .

mysqldumpslow -r -a /var/log/slow-queries.log > slow.log.parsed

Passos seguintes

Após rever o registo de consultas lentas, deverá ter uma boa ideia das consultas problemáticas que necessitam de ser corrigidas. Se o seu site ainda estiver lento com o MySQL e usando muitos recursos, pode ser necessário otimizar o MySQL para utilizar melhor os recursos do seu servidor.

Assim que terminar o registo, certifique-se de que desativa o registo de consulta lenta do MySQL . Deixar o registo ativado irá drenar recursos do MySQL desnecessariamente e potencialmente encher o seu disco (com consultas incorretas).

Serviços de alojamento GoDaddy

Os nossos especialistas em servidores podem ativar / desativar o registo de consultas lentas do MySQL e otimizar o MySQL. Para saber mais sobre este serviço, um Guia GoDaddy está aqui para ajudar.

Mais informações

Para saber mais sobre os serviços de alojamento oferecidos pela GoDaddy, consulte o nossoMenu dos serviços de alojamento .