É preciso assumir que o cache de consulta do MySQL é verificado na execução subsequente de consultas na forma SELECT ... WHERE ... LIMIT x, y
em que os únicos parâmetros variáveis na consulta são x e y?
relate perguntas
-
Existem ferramentas de benchmarking do MySQL? [fechado]
-
Onde posso encontrar o log lento do mysql?
-
Como posso otimizar um mysqldump de um banco de dados grande?
-
Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?
-
Como um grupo pode rastrear alterações no esquema do banco de dados?
Na verdade não.
O cache de consulta no MySQL, como discuti detalhadamente em outra resposta , é uma otimização que faz apenas uma coisa: retorna exatamente o mesmo conjunto de resultados em resposta à mesma consulta, se o resultado anterior foi armazenado em cache e não foi removido do cache devido à invalidação (por alterações nos dados nas tabelas subjacentes) ou remoção para liberar espaço para consultas mais recentes.
O cache de consulta é verificado antes que a consulta chegue ao analisador, sempre que uma consulta começar com os caracteres "SEL" (sem distinção entre maiúsculas e minúsculas).
Se a consulta, byte por byte, não for idêntica a uma já armazenada em cache, a consulta não será atendida a partir do cache. Se alguma coisa mudar, mesmo um único espaço na consulta, essa é uma consulta diferente de acordo com o cache de consulta.
Se uma consulta com
LIMIT X,Y
ou equivalenteLIMIT ... OFFSET ...
for armazenada em cache, apenas as linhas reais retornadas serão armazenadas no cache de consulta e somente a consulta idêntica com o mesmo limite e deslocamento buscará essas mesmas linhas do cache novamente.