O MySQL mantém um cache de tabelas, consultas e resultados usados recentemente na memória, a fim de retornar resultados mais rápidos. Por exemplo, se você consultar "select * from company where id =1" de um cliente 1 milhão de vezes, apenas a primeira consulta precisa ir para o disco, as próximas 999.999 virão direto do cache da RAM. Não há razão para o MySQL expirar este cache até que ele saiba que precisa de mais memória, então ele mantém as coisas salvas até que precise liberar RAM para outro trabalho ou resultados usados com mais frequência.
Não afirmo ser um especialista - entendo a otimização do cache de consulta do banco de dados como uma ciência muito complexa e profunda. Os programadores da Oracle, Microsoft e outros passaram anos e anos trabalhando na melhor maneira de gerenciar o espaço de cache, por isso é difícil prever de fora.