Engines MySQL – Memory

Ola pessoal,

Voltando a atualizar o blog, vamos falar do Engine Memory. Como o proprio nome já adianta, este Engine armazena as tabelas na memória do servidor. Isso realmente é necessário? Sim, principalmente para aplicações que dependem de algum cache temporário.

Com isso, tanto os dados como os indices nesta tabela são tratados na memória RAM do servidor, trazendo um ganho muito grande em desempenho.

Toda tabela é representada no datadir do mysql com um .frm, e não resistem ao restart do serviço. De forma detalhada, você pode popular uma tabela Memory, porém após efetuar um restart no MySQL, a estrutura da tabela ainda vai existir, porém sem nenhum dado.

Veremos um exemplo. A forma que a tabela é representada:

A inserção e verificação dos dados

Após o restart do serviço, é possível visualizar o ‘esqueleto’ da tabela, porém sem nenhum dado inserido:

Isso é interessante ao comparar com a temporary table, pois caso você adeque a aplicação, não será necessário criar sempre uma tabela, e sim popular a que já existe no Engine Memory.

Seguem outras caracteristicas interessantes:

Armazenamento: Depende da dispobilidade de Memoria RAM
MVCC e Transações: Não
Chave estrangeira: Não
Indices: Suporte ao Hash (default) e Btree
Tipo de dados: Não pode cpmter as colunas do tipo TEXT ou Blog

E se você não conseguir acompanhar o crescimento da tabela? Sim isso pode ser critico dependendo da disponibilidade de memória, porém é possível definir um limite no crescimento da tabela, através da variável max_heap_table_size.


É isso ai pessoal.

Dúvidas, criticas ou sugestões? Fiquem a vontade, todo retorno é construtivo 🙂

Jose Wilson

Deixe uma resposta