Como o MySQL expira o cache?

Como o MySQL expira o cache?

Suponha que a memória seja suficiente,

como o MySQL determina se deve buscar no cache ou consultar novamente?

Responder1

AFAIK mysql expira automaticamente, seus caches quando a tabela muda (inserções, atualizações, exclusões, etc)

O mysql geralmente armazena em cache imediatamente com base em query_cache_limit e 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ê também deve certificar-se de que sua consulta seja igual, pois leva em consideração consultas que diferenciam maiúsculas de minúsculas.

Além disso, você pode usar o seguinte comando para monitorá-lo:

SHOW STATUS LIKE '%qcache%';

Então, 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 verá que o mysql já estará usando o cache e o resultado ocorrerá muito mais rápido.

INFORMAÇÕES ADICIONAIS

Primeiro você deve ter certeza de que possui query-cache-type = 1my.cnf ou my.ini dependendo do SO/INSTALAÇÃO.

No mysql você pode executar o seguinte comando 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á desabilitado, esta 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

informação relacionada