Veja como você pode configurar o key_buffer_size e o innodb_buffer_pool_size
Configurando o tamanho do buffer de chave para o MyISAM
SELECIONE CONCAT (ROUND (KBS / POWER) (1024, IF (pw < 0,0, IF (pw > 3,0, pw))) + 0,49999), SUBSTR ('KMG', IF (pw < 0, 0, IF (pw > 3,0, pw)) + 1,1)) recomendado_key_buffer_size FROM (SELECIONAR SOMA (index_length) KBS FROM information_schema.tables WHERE engine = 'MyISAM' E table_schema NOT IN ('information_schema', 'mysql' )) A, (SELECIONAR 3 pw) B;
BTW O key_buffer_size máximo que funciona corretamente é 4G
Portanto, defina key_buffer_size como 4G ou a configuração recomendada da consulta anterior, o que for menor.
Definindo innodb_buffer_pool_size
SELECIONE CONCAT (ROUND (KBS / POWER) (1024, IF (pw < 0,0, IF (pw > 3,0, pw))) + 0,49999), SUBSTR ('KMG', IF (pw < 0, 0, IF (pw > 3,0, pw)) + 1,1)) recomendado_innodb_buffer_pool_size FROM (SELECT SUM (comprimento_de_dados + comprimento_de_índice) KBS FROM informações_schema.tables WHERE motor = 'InnoDB') A, (SELECIONAR 3 pw) B;
Você também pode querer redimensionar o ib_logfile0 e o ib_logfile1. Aqui está como:
Etapa 1) service mysql stop
Etapa 2) adicione esta linha ao /etc/my.cnf
innodb_log_file_size = 2047M (ou 25% de recommended_innodb_buffer_pool_size, o que for menor)
Passo 3) rm -f / var / log / mysql / ib_logfile [01]
Etapa 4) serviço mysql start
Para entender por que essas configurações fazem sentido, execute esta consulta
SELECIONE IFNULL (B.engine, 'Total') "Mecanismo de Armazenamento", CONCAT (LPAD (REPLACE) (FORMATO (B.Size / POWER (1024, pw), 3), ',', ''), 17 , ''), '', SUBSTR ('KMGTP', pw + 1,1), 'B') "Tamanho dos Dados", CONCAT (LPAD (REPLACE) (FORMATO (B.ISize / POWER (1024, pw), 3 ), ',', ''), 17, '', '', SUBSTR ('KMGTP', pw + 1,1), 'B') "Tamanho do índice", CONCAT (LPAD (REPLACE (FORMATO .Tamanho / POWER (1024, pw), 3), ',', ''), 17, '', '', SUBSTR ('KMGTP', pw + 1,1), 'B') "Tamanho da tabela "FROM (mecanismo SELECT, SUM (data_length) DSize, SUM (comprimento_Index) ISize, SUM (comprimento_de_dados + comprimento_de_imagem) TSize FROM information_schema.tables WHERE table_schema NOT IN ('mysql', 'information_schema', 'performance_schema') E o mecanismo NÃO É NULL GROUP BY mecanismo WITH ROLLUP) B, (SELECT 3 pw) Um ORDER BY TSize;
Se você estiver usando o InnoDB, você deve ativar innodb_file_per_table e Limpar seu armazenamento InnoDB