mysql - existe uma boa maneira de armazená-lo no ram

2

Estou tentando pensar em maneiras de tornar o mysql mais rápido. Existe uma maneira comprovada de armazená-lo no RAM para permitir que ele funcione mais rápido?

    
por Matthew 25.09.2010 / 02:28

5 respostas

1

Como é o mecanismo de armazenamento MEMORY ?

Outra opção seria criar um ramdisk e usar o MyISAM ou INNODB tabelas dentro disso. Eu imagino, porém, que o desempenho seria melhor usando o mecanismo de armazenamento MEMORY, devido ao fato de que ele foi projetado desde o início para ser armazenado na memória, enquanto os outros tipos de tabela operam sob a suposição de que eles estão sendo armazenados no disco.

    
por 25.09.2010 / 02:44
2

Primeiro, faça um favor a si mesmo e pegue as sugestões do mecanismo de MEMORY com um grande grão de sal.

A menos que você não precise de nenhuma das seguintes opções:

  • MVCC
  • Transações
  • Acesso multithread
  • Índices agrupados
  • Suporte a chave estrangeira
  • Mais do que um INSERT / UPDATE ocasional
  • Seus dados

Se você não precisar de nenhum desses, então você não deveria estar usando o MySQL. Use um armazenamento simples de valor-chave como o memcached.

Se você precisar de qualquer destes (dica: você usa), então use o InnoDB, o máximo de RAM que você puder pagar, e um innodb_buffer_pool_size corretamente configurado. O MySQL Performance Blog tem um excelente artigo sobre configuração de innodb_buffer_pool_size . Curto e doce - você vai querer RAM suficiente para caber todo o espaço de tabelas e índices do banco de dados na RAM e definir innodb_buffer_pool_size para 70-80% da RAM total do sistema para um servidor MySQL dedicado.

    
por 25.09.2010 / 06:54
1

O RAM SAN é muito caro, mas é muito interessante. O RAMdisk é uma idéia muito ruim, porque no caso de perda de energia do sistema ou um erro fatal do sistema, o RAMdisk desaparece como está na RAM.

    
por 25.09.2010 / 04:47
0
  • Teste memcached para fazer cache de consultas pesadas.
  • Experimente a função de cache de consulta do mysql nativa, que é desativada nativamente e torna-se enorme diferença em consultas de tabelas estáticas / semi-estáticas.
  • Tente NÃO ordenar grandes consultas no mysql, lançar os dados brutos no código e classificá-los lá e depois em cache.
  • Tente aumentar o limite de memória do mysql.

Você pode querer colocar algum monitor (como munin ) no seu servidor para ter certeza que o mysql é o problema real, geralmente é muito disco expencive quando você está lidando com consultas não armazenadas em cache. Se tudo falhar, você precisará gastar um pouco de dinheiro para obter uma solução de armazenamento SSD.

    
por 25.09.2010 / 06:52
-1

Jogue com o mecanismo de armazenamento MEMORY, como ErikA sugeriu. Mas verifique se você também está otimizando todo o seu cache de consulta, cache de thread e configurações de buffer. mysqltuner.pl é um excelente ponto de partida.

    
por 25.09.2010 / 05:59