Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como construir manualmente o cache do mysql


O cache do MySQL funciona de forma diferente dependendo se você usa o mecanismo de armazenamento MyISAM ou o mecanismo de armazenamento InnoDB.

O MyISAM armazena em cache apenas índices, não dados. Você pode usar LOAD INDEX INTO CACHE para pré-carregar índices MyISAM no cache de buffer de chave. Mas não há instrução equivalente se você usar o InnoDB.

O InnoDB armazena em cache tanto as páginas de dados quanto as de índice. Não há nenhum comando especializado para aquecer os buffers de cache, mas você pode executar algumas instruções SQL que fazem varreduras completas de tabela e varreduras completas de índice para carregá-las nos buffers. Você deve ser capaz de fazer isso usando um script no servidor, sem recorrer a wget !

Concordo com a resposta do @code_burgar:150k linhas são pequenas o suficiente para que você não perceba muita perda de desempenho enquanto o cache está aquecendo.

Se você está falando sobre o aquecimento do Query Cache , essa é uma questão diferente. Você terá que aquecer o Query Cache usando consultas SQL específicas, pois esse cache mantém os conjuntos de resultados associados a essas consultas SQL literalmente. Seu wget solução é ineficiente e provavelmente duplica muito trabalho. Você deve ser capaz de preparar o cache de consulta executando um script no servidor que executa cada consulta que você deseja armazenar em cache uma vez .

Mas pode ser necessário fazer uma revisão de código para descobrir quais são essas consultas e atualizar periodicamente o script de pré-carregamento de cache se o código for alterado.