MySQL: Carrega o banco de dados para a memória

1

Existe uma maneira de carregar um banco de dados MySQL inteiro para a RAM, especialmente em um servidor EC2?

  1. O banco de dados é bem pequeno (~ 500 MegaBytes)
  2. tenho memória suficiente
  3. Problemas de velocidade são cruciais - as consultas resultantes são usadas para veicular uma página da Web dinâmica.

Obrigado,

Adam

    
por Adam Matan 22.03.2010 / 16:16

2 respostas

1

Você certamente pode carregar índices no cache; se você tem pequenas tabelas ISAM que são freqüentemente consultadas, o MySQL provavelmente irá carregá-las no cache também. Aqui está um bom artigo do Performance Wiki sobre o ajuste do MySQL.

    
por 22.03.2010 / 16:39
3

Você pode armazenar o banco de dados em um disco RAM, como ramfs . Isso poderia arriscar os dados, dependendo da implementação, portanto, seria necessário projetar para compensar isso. Uma solução potencial seria ter um escravo somente leitura replicando em um disco de RAM e os dados ali poderiam ser descartáveis.

O MySQL Clustering (NDB engine) é projetado para armazenar dados na memória. No entanto, o armazenamento em cluster do MySQL é mais adequado para pequenos conjuntos de dados acessados com consultas simples.

Uma solução favorita é memcached nos dias de hoje, mas isso requer uma arquitetura de aplicativos para suportar a tecnologia.

Esta é uma questão bastante grande. Alto desempenho O MySQL é um livro fantástico que abrange implementações de alto nível do MySQL.

por 22.03.2010 / 16:56