Se uma consulta for executada a partir da linha de comando do MySQL, então KILL
edite-a enquanto estiver em execução, a consulta e seus resultados parciais* estarão no cache de consulta e utilizáveis para execuções subsequentes da consulta idêntica?
Para simplificar, digamos que seja um simples antigo SELECT
sem subconsultas.
A lista de exclusões nesta página abrange os casos em que as consultas não serão armazenadas em cache, como a mudança da tabela consultada entre as execuções e certas operações que não são idênticas por natureza, mas não vejo consultas interrompidas ou eliminadas listadas em nenhum lugar. Não deve ser que uma consulta eliminada seja tratada da mesma forma que uma que foi executada até a conclusão, mas se atendesse a todos os outros critérios para armazenamento em cache, ela já estaria armazenada em cache* antes de ser eliminada, então estou me perguntando o que acontecerá a seguir.
MySQL 5.6
* Estou fazendo várias suposições aqui.
Sim e não.
O Cache de consulta não verá, muito menos manterá, o resultado parcial. A página que você referenciou está falando apenas sobre o cache de consulta. O QC é preenchido somente depois que o resultado completo é construído. Isso dá um impulso significativo para uma repetição da consulta idêntica . (Consultas semelhantes não são atendidas pelo QC.)
O buffer_pool do InnoDB (e o equivalente no MyISAM) armazena em cache todos os blocos lidos do disco. Os blocos que foram lidos do disco antes do processo de eliminação provavelmente ainda estarão na RAM. Isso fornecerá algum aumento de desempenho para execuções repetidas das mesmas consultas ou consultas semelhantes, eliminadas ou não.