Habilidades de otimização de teste de desempenho - posicionamento de consulta lenta do MySQL


introdução

A parte mais importante do teste de desempenho é a otimização do desempenho. Quando o tempo de resposta é relativamente longo ou o tps não pode aumentar, pode ser por causa da consulta lenta do SQL.

Registro de consulta de abertura de conta lenta

mysql> set global slow_query_log = on;
Query OK, 0 rows affected (0.01 sec)

Defina o limite de tempo da consulta lenta (contanto que o tempo da consulta seja maior que esse valor, ele será registrado no log da consulta lenta, unidade: segundo)

mysql> show global variables like "slow_query_log_file";

Determine o caminho lento do log de consulta

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

、

Determine o nome do arquivo de log de consulta lenta

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

Ver o comando de log

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

Localize consultas lentas através da lista de processos de exibição

Às vezes, a consulta lenta está sendo executada, o que faz com que a carga do banco de dados fique muito alta e, como a consulta lenta ainda não foi executada, nenhuma instrução pode ser vista no log de consulta lenta. Neste momento, você pode usar o comando show processlist para determinar a consulta lenta que está sendo executada. show processlist mostra quais threads estão em execução. Se você tiver permissão PROCESS, você pode ver todos os tópicos. Caso contrário, você só pode ver os tópicos da sessão atual.

Expansão de conhecimento: Se a palavra-chave FULL não for usada, apenas os primeiros 100 caracteres de cada frase são exibidos no campo de informações. Se você quiser ver todo o conteúdo da frase, você pode usar a modificação completa (mostrar lista de processos completa).

Aqui está uma explicação dos principais parâmetros dos resultados acima:

Tempo: indica o tempo de execução

Info: Representa instruções SQL

Aqui podemos julgar se é um SQL lento pelo seu tempo de execução (Time).

Consulta lenta de análise EXLPAIN

Analisar a eficiência de execução de SQL é uma forma importante de otimizar SQL. Através dos dois métodos mencionados acima, após localizarmos declarações de consulta lentas, começaremos a analisar a eficiência de execução de SQL. Podemos analisá-la por meio de ferramentas de diagnóstico como explain, show profile e trace . Consulta lenta.

Explain pode obter o plano de execução da instrução SQL no MySQL, como se a instrução usa a consulta associada, se o índice é usado, o número de linhas verificadas, etc. Pode nos ajudar a escolher melhores índices e escrever melhores SQL. Como usar: Basta adicionar explain na frente da instrução de consulta e executá-lo.

Crie uma tabela de teste e insira alguns dados para teste:

#create table
CREATE TABLE `test_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL,
`d` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_a` (`a`),
KEY `idx_b_c` (`b`,`c`)
) ENGINE=InnoDB CHARSET=utf8mb4;

# insert data proc
DELIMITER //
CREATE PROCEDURE insert_test_data()
BEGIN
 DECLARE i INT;
 SET i=1;
 WHILE(i<=160000) DO
 INSERT INTO test_table (a,b,c,d) VALUES (i,i,i,i);
 SET i=i+1;
END WHILE;
END //
# exec proc
CALL insert_test_data();

Criamos 3 índices: PRIMARY KEY ( id), índice clusterizado KEY idx_a( a), índice não clusterizado KEY idx_b_c( b, c) índice não clusterizado d coluna não criou um índice

Conclusão

Em muitos casos, se você não tem permissões de banco de dados, não importa. Você pode pedir ajuda na operação e manutenção ou desenvolvimento.

Eu sou uma senhora de teste no local de trabalho! Acabei de terminar o tutorial de teste, vou compartilhá-lo novamente. Os testadores interessados ​​em testes automatizados de python, automação da web, automação de interface, automação de terminal móvel, troca de experiências de entrevistas, etc., podem seguir a conta pública do WeChat:[Sad Spicy Strips], Obtenha as informações da entrevista do engenheiro de teste de software da Dachang! Meu grupo de intercâmbio de aprendizagem: 902061117 grupo tem especialistas técnicos para se comunicar e compartilhar ~

Se o artigo for útil para você, entre em contato para fazer uma fortuna e me dê um like. Obrigado pelo seu apoio. Seus likes são minha motivação para uma atualização contínua.

Leitura recomendada:

Que tipo de pessoa é adequada para teste de software?

Falando em começar de uma pequena empresa para uma grande fábrica, o que eu fiz certo?

Quer mudar para o teste de software? Venha e veja se você é adequado

Do autoestudo ao trabalho em teste de software, como deve ser realizado o aprendizado de teste de software?

Como escrever uma experiência de projeto de currículo de engenheiro de teste de software? -1.000 modelos de currículo de engenheiro de teste de software (currículo real) que foram recrutados com sucesso

Acho que você gosta

Origin blog.csdn.net/weixin_50271247/article/details/115248439
Recomendado
Clasificación