Estou testando a velocidade de algumas consultas no MySQL. O banco de dados está armazenando essas consultas em cache, dificultando a obtenção de resultados confiáveis ao testar a rapidez com que essas consultas são.
Existe uma maneira de desativar o cache para uma consulta?
Sistema: MySQL 4 no Linux, tenho acesso ao PHPMyAdmin.
obrigado
Outra alternativa que afeta apenas a conexão atual:
fonte
query_cache_size
eu estava olhando, nãoquery_cache_type
. Eu estava misturando a sua e a resposta do SeniorDev.Qualquer referência à data / hora atual desativará o cache de consulta para essa seleção:
Consulte "Pré-requisitos e notas para uso do cache de consultas do MySQL" @ http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html
fonte
Há também a opção de configuração: query_cache_size = 0
Consulte http://dev.mysql.com/doc/refman/5.1/en/query-cache.html
fonte
Você também pode executar o comando follow para redefinir o cache da consulta.
fonte
Um problema com o
O método é que parece impedir apenas que o resultado da sua consulta seja armazenado em cache. No entanto, se você estiver consultando um banco de dados que está sendo usado ativamente com a consulta que deseja testar, outros clientes poderão fazer cache da sua consulta, afetando seus resultados. Eu continuo pesquisando maneiras de contornar isso, editarei este post se eu descobrir um.
fonte
Eu usaria o seguinte:
fonte
O uso de uma variável definida pelo usuário em uma consulta faz com que a consulta seja novamente recuperável. Achei um indicador muito melhor do que usar
SQL_NO_CACHE
. Mas você deve colocar a variável em um local em que a configuração da variável não afete seriamente o desempenho:fonte
SQL_NO_CACHE
". Como assim? Parece que você precisaria de um argumento bastante forte para usar um hack obscuro sobre uma palavra-chave explícita, a menos que a palavra-chave explícita não esteja fazendo o que afirma.Se você deseja desativar o cache de consulta, defina 'query_cache_size' como 0 no seu arquivo de configuração mysql. Se o seu conjunto 0, o mysql não usará o cache de consulta.
fonte