innodb_log_buffer_size: Configurar tamanho do buffer de log do InnoDB

Resumo : Neste tutorial, você aprenderá como configurar o tamanho do buffer de log do InnoDB usando a innodb_log_buffer_sizevariá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_sizevariá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_waitsvariá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_waitsvariável armazena o número de vezes que essas esperas ocorreram.

Se innodb_log_waitsa 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 -pLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Segundo, verifique o innodb_log_waitsvalor 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.iniou 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 = 32MLinguagem 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_sizevariável.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *