Como posso ter certeza de todo o banco de dados MySQL é carregado na memória?

StackOverflow https://stackoverflow.com/questions/144210

  •  02-07-2019
  •  | 
  •  

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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top