Resumo : Neste tutorial, você aprenderá como configurar o tamanho do buffer de log do InnoDB usando a innodb_log_buffer_size
variável de configuração.
No InnoDB , um buffer de log é uma estrutura de memória que armazena a modificação dos dados antes de serem gravados nos arquivos de log no disco.
Um tamanho ideal do buffer de log pode melhorar o desempenho, reduzindo a frequência de operações de E/S caras.
O tamanho do buffer de log é controlado pelas innodb_log_buffer_size
variáveis de configuração.
O valor padrão do tamanho do buffer de log geralmente é adequado para a maioria dos aplicativos. No entanto, se você tiver um aplicativo com uso intenso de gravação, poderá ser necessário ajustar o tamanho do buffer com base na memória do servidor e nas características do aplicativo.
Para verificar se você precisa ajustar o tamanho do buffer de log, você pode usar a innodb_log_waits
variável status.
As esperas de log do InnoDB ocorrem quando uma transação não consegue gravar no buffer de log porque está cheio. A innodb_log_waits
variável armazena o número de vezes que essas esperas ocorreram.
Se innodb_log_waits
a variável for maior que zero, provavelmente será necessário ajustar o tamanho do buffer de log.
Verificando esperas de log do InnoDB
Primeiro, conecte-se ao servidor MySQL :
mysql -u root -p
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, verifique o innodb_log_waits
valor usando a seguinte consulta:
SHOW GLOBAL STATUS LIKE 'Innodb_log_waits';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Innodb_log_waits | 0 |
+------------------+-------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A saída mostra zero, indicando que o tamanho do buffer de log é suficiente. Se você vir um valor maior que zero, será necessário definir o tamanho do buffer de log para um valor maior.
Configure o tamanho do buffer de log do InnoDB: innodb_log_buffer_size
Primeiro, abra o arquivo de configuração do MySQL ( my.ini
ou my.cnf
) e defina o valor com base na memória disponível do seu sistema e nos requisitos de carga de trabalho:
innodb_log_buffer_size = 32M
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, definimos o tamanho do buffer de log para 32 MB.
Segundo, reinicie o servidor MySQL para que as alterações tenham efeito.
Terceiro, conecte-se ao servidor MySQL :
mysql -u root -p
Por fim, verifique o valor da variável global innodb_log_buffer_size
:
SHOW GLOBAL VARIABLES LIKE 'innodb_log_buffer_size';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+------------------------+----------+
| Variable_name | Value |
+------------------------+----------+
| innodb_log_buffer_size | 33554432 |
+------------------------+----------+
1 row in set (0.01 sec)
Linguagem de código: JavaScript ( javascript )
O tamanho do buffer está em bytes. Você pode convertê-lo para MB da seguinte maneira:
SELECT ROUND(@@innodb_log_buffer_size / 1024 / 1024, 0);
Linguagem de código: CSS ( css )
Saída:
+--------------------------------------------------+
| ROUND(@@innodb_log_buffer_size / 1024 / 1024, 0) |
+--------------------------------------------------+
| 32 |
+--------------------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: JavaScript ( javascript )
São 32 MB conforme definimos no arquivo de configuração.
Resumo
- Configure o tamanho do buffer de log do InnoDB de acordo com a memória do sistema e os requisitos dos aplicativos que usam a
innodb_log_buffer_size
variável.