Como pré-carregar tabelas no buffer pool INNODB com o MySQL?

Eu tenho um aplicativo de comércio eletrônico que usa MySQL e gostaria que fosse mais rápido. Quando um número de peça é acessado no site acessado anteriormente, a peça é carregada rapidamente porque todos os dados necessários já estão no buffer pool INNODB. No entanto, se o número da peça nunca foi carregado antes, esses dados ainda não estão no buffer pool, portanto, eles precisam ser lidos do disco e isso é lento. Defino meu buffer pool do INNODB como 2 GB e esse banco de dados inteiro tem apenas cerca de 350 MB; portanto, há bastante espaço para carregar o banco de dados inteiro no buffer pool. Eu posso ver pelas estatísticas do INNODB que apenas metade do buffer pool é usado no momento.

Encontrei referências para pré-carregar os dados, também conhecido como "aquecendo" o buffer pool, comoPré-carregamento rápido de tabelas Innodb no buffer pool ou mysqldump.azundris.com/archives/70-Innodb-cache-preloading-using-blackhole.html. A estratégia basicamente envolve forçar uma varredura de tabela em cada tabela, já que o MySQL não possui uma maneira nativa de pré-carregar os dados.

Não quero criar manualmente um script que liste todas as tabelas do meu banco de dados e precise fazer isso. Como posso criar um script que executa e seleciona automaticamente cada tabela automaticamente e seleciona automaticamente uma coluna não indexada para que uma varredura de tabela seja executada?

questionAnswers(2)

yourAnswerToTheQuestion