

# Aquecimento de cache do MariaDB no Amazon RDS
<a name="MariaDB.Concepts.XtraDBCacheWarming"></a>

O aquecimento de cache do InnoDB pode fornecer ganhos de performance para sua instância de banco de dados do MariaDB salvando o estado atual do grupo de buffer quando a instância de banco de dados é desativada e, em seguida, recarregando o grupo de buffer a partir das informações salvas quando a instância do banco de dados for iniciada. Essa abordagem ignora a necessidade de o grupo de buffer "aquecer" do uso normal de banco de dados e, em vez disso, pré-carrega o grupo de buffer com as páginas para consultas comuns conhecidas. Para obter mais informações sobre o aquecimento de cache, consulte [Despejo e restauração do grupo de buffers](http://mariadb.com/kb/en/mariadb/xtradbinnodb-buffer-pool/#dumping-and-restoring-the-buffer-pool) na documentação do MariaDB.

O aquecimento de cache está habilitado por padrão para instâncias de banco de dados do MariaDB 10.3 e posteriores. Para habilitá-lo, defina os parâmetros `innodb_buffer_pool_dump_at_shutdown` e `innodb_buffer_pool_load_at_startup` para 1 no grupo de parâmetros da sua instância de banco de dados. Mudar esses valores de parâmetro em um grupo de parâmetros afeta todas as instâncias de banco de dados do MariaDB que usam esse grupo de parâmetros. Para habilitar o aquecimento de cache para instâncias específicas de banco de dados do MariaDB, talvez seja necessário criar um grupo de parâmetros nessas instâncias de banco de dados. Para obter informações sobre grupos de parâmetros, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

O aquecimento de cache fornece principalmente um benefício de performance para instâncias de banco de dados que usam armazenamento padrão. Se você usar o armazenamento de PIOPS, não perceberá um benefício significativo de performance normalmente.

**Importante**  
Se sua instância de banco de dados do MariaDB não fechar normalmente, por exemplo durante um failover, o estado do grupo de buffer não é salvo no disco. Nesse caso, o MariaDB carrega qualquer arquivo de grupo de buffer disponível quando a instância de banco de dados for reiniciada. Não há problema, mas o grupo de buffer restaurado pode não refletir o estado mais recente do grupo de buffer antes do reinício. Para garantir que você tenha um estado recente do grupo de buffer disponível para aquecer o cache do na inicialização, recomendamos que você descarte periodicamente o grupo de buffer "sob demanda". Você pode descartar ou carregar o grupo de buffer sob demanda.  
Você pode criar um evento para descartar o grupo de buffer automaticamente e em um intervalo regular. Por exemplo, a seguinte declaração cria um evento chamado `periodic_buffer_pool_dump` que descarta o grupo de buffer de hora em hora.   

```
1. CREATE EVENT periodic_buffer_pool_dump 
2.    ON SCHEDULE EVERY 1 HOUR 
3.    DO CALL mysql.rds_innodb_buffer_pool_dump_now();
```
Para obter mais informações, consulte [Eventos](http://mariadb.com/kb/en/mariadb/stored-programs-and-views-events/) na documentação do MariaDB.

## Como descartar e carregar o grupo de buffer sob demanda
<a name="MariaDB.Concepts.XtraDBCacheWarming.OnDemand"></a>

Você pode salvar e carregar o cache do sob demanda usando os seguintes procedimentos armazenados:
+ Para descartar o estado atual do grupo de buffer para o disco, chame o procedimento armazenado [mysql.rds\_innodb\_buffer\_pool\_dump\_now](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_dump_now).
+ Para carregar o estado salvo do grupo de buffer a partir do disco, chame o procedimento armazenado [mysql.rds\_innodb\_buffer\_pool\_load\_now](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_load_now).
+ Para cancelar uma operação de carregamento em andamento, chame o procedimento armazenado [mysql.rds\_innodb\_buffer\_pool\_load\_abort](mysql-stored-proc-warming.md#mysql_rds_innodb_buffer_pool_load_abort).