O AFAIK mysql expira automaticamente e é armazenado em cache quando a tabela é alterada (inserções, atualizações, exclusões etc.)
O mysql geralmente armazena em cache imediatamente com base no query_cache_limit e no tamanho, o query_cache_limit padrão é 1M, portanto, se a consulta individual for maior, ela não será armazenada em cache, a menos que você a altere.
Você deve certificar-se de que sua consulta também é igual, já que leva em consideração as maiúsculas e minúsculas.
Além disso, você pode usar o comando follow para monitorá-lo:
SHOW STATUS LIKE '%qcache%';
Por exemplo, crie uma tabela com algumas entradas e execute:
SELECT id,name FROM my_table WHERE id > '2'; SHOW STATUS LIKE '%qcache%';
Você notará que o número de consultas armazenadas em cache aumentou em 1, agora execute a mesma seleção novamente e você verá que o mysql já estará usando o cache e o resultado ocorrerá muito mais rápido.
INFORMAÇÕES ADICIONAIS
Primeiro, você deve certificar-se de ter query-cache-type = 1
em seu my.cnf ou my.ini, dependendo do OS / INSTALLATION.
Do mysql você pode executar o comando follow para verificar o status dele:
SHOW VARIABLES LIKE '%query_cache%';
Ao listar os dados, você verá o tamanho do cache de consulta. Se estiver definido como 0, significa que seu cache de consulta está desativado. Essa variável determina a memória, em bytes, usada para o cache de consulta.
Assim como você fez para o tipo de cache de consulta, adicione o seguinte ao seu my.cnf ou my.ini:
query-cache-size = 40M