Como o MySQL expira o cache?

3

Suponha que a memória seja suficiente,

como o MySQL determina se deve buscar a partir do cache ou re-consultar?

    
por jscott 12.08.2010 / 05:57

1 resposta

3

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

    
por 12.08.2010 / 07:01

Tags