innodb_buffer_pool_chunk_size: Configurar o tamanho do bloco do buffer pool

Resumo : neste tutorial, você aprenderá como configurar o tamanho do bloco do buffer pool innodb_buffer_pool_chunk_sizeno mecanismo de armazenamento InnoDB.

Introdução à variável de configuração do tamanho do bloco do buffer pool innodb_buffer_pool_chunk_size

O buffer pool no InnoDB é uma estrutura na memória que armazena os dados acessados ​​com frequência.

O InnoDB utiliza o buffer pool para melhorar o desempenho do banco de dados, acessando os dados diretamente da memória em vez de lê-los no disco.

A variável de configuração innodb_buffer_pool_size  define o tamanho do buffer pool.

Se o buffer pool for grande (vários gigabytes), será possível ativar vários buffer pools usando a variável de configuração innodb_buffer_pool_instances  para melhorar a simultaneidade.

Esta innodb_buffer_pool_chunk_sizeé uma opção de configuração que determina o tamanho do bloco usado ao redimensionar o buffer pool.

Isso innodb_buffer_pool_chunk_sizeafeta indiretamente o tamanho do buffer pool, pois o tamanho total do buffer pool é um múltiplo de innodb_buffer_pool_chunk_size* innodb_buffer_pool_instances.

No MySQL 8.0, o valor padrão innodb_buffer_pool_chunk_sizeé 128 MB. Seu intervalo válido é de 1 MB a 512 MB. Para evitar problemas de desempenho, o número de blocos não deve exceder 1.000.

O MySQL só permite que você defina na innodb_buffer_pool_chunk_sizeinicialização ou no arquivo de configuração. Em outras palavras, você não pode usar a SETinstrução para atribuir um valor a ela enquanto o servidor MySQL estiver em execução.

Ao definir a innodb_buffer_pool_chunk_sizevariável de configuração, o innodb_buffer_pool_chunk_size* innodb_buffer_pool_instancesnão deve exceder o innodb_buffer_pool_size. Se isso acontecer, o MySQL truncará o valor para innodb_buffer_pool_size/ innodb_buffer_pool_instances.

Se você alterar innodb_buffer_pool_chunk_size, o MySQL se ajustará automaticamente innodb_buffer_pool_sizepara um valor igual ou múltiplo de innodb_buffer_pool_chunk_size* innodb_buffer_pool_instancesdurante a inicialização do buffer pool:

innodb_buffer_pool_size = n * (innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Verificando o valor innodb_buffer_pool_chunk_size

Primeiro, conecte-se ao servidor MySQL :

mysql -u root -pLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Em segundo lugar, o valor da innodb_buffer_pool_chunk_sizevariável:

SHOW GLOBAL VARIABLES LIKE 'innodb_buffer_pool_chunk_size';Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------------------+-----------+
| Variable_name                 | Value     |
+-------------------------------+-----------+
| innodb_buffer_pool_chunk_size | 134217728 |
+-------------------------------+-----------+
1 row in set (0.04 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O tamanho do pedaço está em bytes. Por padrão, innodb_buffer_pool_chunk_sizeé 134217728 bytes, ou seja, 128 MB.

Este valor é válido porque o tamanho do pool é 32 vezes o produto do tamanho do bloco e o número de instâncias de buffer:

SELECT @@innodb_buffer_pool_size / @@innodb_buffer_pool_chunk_size * @@innodb_buffer_pool_instances multiple;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----------+
| multiple |
+----------+
|  32.0000 |
+----------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Configurar innodb_buffer_pool_chunk_size

Para definir um valor para innodb_buffer_pool_chunk_size, você precisa alterá-lo no arquivo de configuração do MySQL :

[mysqld]
innodb_buffer_pool_chunk_size=134217728Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que após alterar o arquivo de configuração, você precisa reiniciar o servidor MySQL para que as alterações tenham efeito.

Alternativamente, você pode usá-lo como argumento de linha de comando na inicialização do servidor MySQL:

mysqld --innodb-buffer-pool-chunk-size=134217728Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use innodb_buffer_pool_chunk_sizepara definir o tamanho do bloco usado ao redimensionar o buffer pool do InnoDB.

Deixe um comentário

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