Como posso ter certeza de todo o banco de dados MySQL é carregado na memória?
Pergunta
Estou executando um servidor mysql. Gostaria de alguma forma, certifique-se de que todo o DB é carregado na memória RAM como eu ouvi que seria muito mais rápido.
Isso é verdade? e como faço para vertify-lo?
Solução
Se você estiver usando InnoDB, então você pode definir innodb_buffer_pool_size para ser pelo menos tão grande quanto seus dados e índices. Então, como você acessar dados, ele será armazenado em cache na memória e todos os acessos subsequentes ocorrerá via memória.
Se você quiser pré-cache os dados, você pode fazer algumas das suas consultas comuns, ou varreduras de tabela / índice completos para forçá-lo para carregar todos os dados na memória.
Há uma opção de arquivo de inicialização para o mysql, que pode ter o servidor automaticamente executar alguns comandos no arranque, onde você pode incluir as consultas pré-caching para executar.
Tenha em mente que você não quer ficar sem memória, que deve ter cuidado com a criação innodb_buffer_pool_size muito grande.
Outras dicas
Bem, uma opção é usar um ramdrive .. embora não seja permanente.
http: //www.linuxforums .org / forum / misc / 670-how-create-ram-drive-linux.html
(Apenas para completar,) Você pode usar MONTÃO como motor de mesa. Mas tenha em mente que todos os dados que você colocar em uma tabela HEAP é ido quando você reiniciar o servidor.
Tabelas em RAM são muito rápidos.
Você pode alterar suas tabelas existentes, alterando seu mecanismo de armazenamento. Mas fazer um backup se você quiser usar os dados após a reinicialização do servidor.
ALTER TABLE teste ENGINE = memória;
Tenha em mente, que as tabelas de memória pode não conter BLOB ou colunas de texto e dados e tamanho do índice é limitado a memória disponível.