MySQL storage engines - parte 1


As “engines” de armazenamento do MySQL são módulos de software usados para criar, ler e atualizar dados de um banco de dados. Existem dois tipos de storage engines no MySQL: transaction e non-transactional.

Para o MySQL 5.5 ou superior, o padrão de engine é o InnoDB. Nas versões anteriores o padrão era o MyISAM. Escolher a engine correta é uma decisão estratégica, visto que impacta no consumo do recurso e no que esperar de comportamento do banco. Lógico que, para coisas básicas, isso não será um problema. Mas se você está planejando um banco de dados de produção, o ideal é pelo menos entender onde você está pisando e ser um pouco mais criterioso.

Para começar, vamos a lista atual de storages suportados:

  • InnoDB
  • MyISAM
  • Memory
  • CSV
  • Merge
  • Archive
  • Federated
  • Blackhole

O InnoDB é o mecanismo de armazenamento mais usado com suporte a transações. É um mecanismo de armazenamento compatível com ACID. Ele suporta bloqueio em nível de linha, recuperação de travamento e controle de simultaneidade de várias versões. É o único mecanismo que fornece restrição de integridade referencial de chave estrangeira. A Oracle recomenda o uso do InnoDB para tabelas, exceto para casos de uso especializados.

MyISAM é o mecanismo de armazenamento original. É um mecanismo de armazenamento rápido. Não suporta transações. MyISAM fornece bloqueio em nível de tabela. É usado principalmente em Web e data warehousing.

Mecanismo de armazenamento Memory cria tabelas na memória. É o motor mais rápido. Ele fornece bloqueio em nível de tabela. Não suporta transações. O mecanismo de armazenamento de memória é ideal para criar tabelas temporárias ou pesquisas rápidas. Os dados são perdidos quando o banco de dados é reiniciado.

CSV armazena dados em arquivos CSV. Ele oferece grande flexibilidade porque os dados nesse formato são facilmente integrados a outros aplicativos.

Merge opera em tabelas MyISAM subjacentes. As tabelas de mesclagem ajudam a gerenciar grandes volumes de dados com mais facilidade. Ele agrupa logicamente uma série de tabelas MyISAM idênticas e as referencia como um objeto. Bom para ambientes de armazenamento de dados.

O mecanismo de armazenamento Archive é otimizado para inserção em alta velocidade. Ele comprime os dados à medida que são inseridos. Não suporta transações. É ideal para armazenar e recuperar grandes quantidades de dados arquivados históricos raramente referenciados.

O mecanismo de armazenamento Blackhole aceita, mas não armazena dados. As recuperações sempre retornam um conjunto vazio. A funcionalidade pode ser usada no design de banco de dados distribuído, onde os dados são replicados automaticamente, mas não armazenados localmente. Esse mecanismo de armazenamento pode ser usado para realizar testes de desempenho ou outros testes.

O mecanismo de armazenamento Federated oferece a capacidade de separar servidores MySQL para criar um banco de dados lógico de muitos servidores físicos. As consultas no servidor local são executadas automaticamente nas tabelas remotas (federadas). Nenhum dado é armazenado nas tabelas locais. É bom para ambientes distribuídos.

Postar um comentário

0 Comentários