Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Reduza as consultas do MySQL para uma consulta para acelerar


Veja se estou atualmente capturando tráfego com o Log geral:
SELECT @@general_log;   -- 1 if capturing, 0 if not
-- for me, a 1. This means I have been capturing (good for development. Poor idea for Production)

SELECT @@general_log_file; -- file name for General Log if capturing.
-- for me: GeneralLogBegin_20160803_1420.log

SELECT @@datadir; -- the location of the general_log, and other logs
-- for me: C:\ProgramData\MySQL\MySQL Server 5.6\Data\

Agora desativo a captura do Log Geral abaixo, pois o meu estava capturando:
SET GLOBAL general_log=0; -- stop logging

MOVO meu arquivo de log para um diretório de backup, renomeando-o para GL_from_20160803_1420_to_20160806_1559

Há pouca ambiguidade no conteúdo e intervalo de data e hora da captura que o arquivo acima incorpora.

Defina o novo nome para a captura do arquivo de log (Iniciar segmento para nome do arquivo)
SET GLOBAL general_log_file='GeneralLogBegin_20160806_1559.log';
SET GLOBAL general_log=1; -- Start logging again

Execute um aplicativo meu que se conecta ao servidor e o Log Geral contém:

ChunkA:
160806 16:08:37   170 Connect   [email protected] on stackoverflow
          170 Query SHOW VARIABLES
          170 Query SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP())
          170 Query SHOW COLLATION
          170 Query SET NAMES latin1
          170 Query SET character_set_results=NULL
          170 Init DB   my_db_name

Nota:pode ser necessário fazer
mysqladmin -u root -p flush-log

(solicitado por senha) para liberar os logs do cache para o arquivo. A propósito, Sublime Text é incrível para atualização automática de um arquivo de texto atualmente carregado. Por exemplo, um arquivo de log.

Então meu ChunkA acima é o stub de conexão de uma nova conexão que está chegando. Ele é acionado pelos comandos do programa em uso, seja ele qual for. É antes dos comandos do seu programa que você está acostumado e codifica. Se você está continuamente criando novas conexões, executando o código que você escreve e desconectando, tudo isso faz parte da bagagem. Você não está no controle de otimizá-los de maneira simples.

O que você deve considerar fazer é DESLIGAR o log de consulta geral em um ambiente de produção. E apenas ativá-lo durante as configurações do ambiente de Depuração e Teste. Tê-lo aumenta a carga desnecessária em sua pilha.