Não entendo por que você deseja liberar o cache. Ele cuida de si mesmo, e não há benefício de desempenho (que eu já vi) para periodicamente liberá-lo. A taxa de acertos do cache de 50% é realmente incrível.
Qualquer atualização em qualquer linha da tabela invalida todas as consultas que usaram essa tabela. Isso significa que qualquer consulta que se junte a ela é removida. Não importa se os resultados são afetados ou não.
Sugiro usar uma solução de armazenamento em cache como o memcached, onde você tem um controle mais refinado do que está sendo armazenado em cache e como os dados são expirados.Se você estiver vendo problemas de desempenho, talvez seja melhor deixar cair a memória associada ao cache de consulta e aumentar seu innodb_buffer_pool e innodb_additional_mem_pool_size.
Além disso, você deve dar uma olhada no sintonizador mysql: link