SQL_NO_CACHE
Simplesmente adicione SQL_NO_CACHE após a parte SELECT da instrução SELECT e antes da lista de campos. A primeira consulta abaixo usará o cache de consulta se estiver ativado e a consulta estiver armazenada em cache:
SELECT * FROM table WHERE search= 'keyword'; //lets take 1ms
A segunda consulta abaixo não usará o cache de consulta:
SELECT SQL_NO_CACHE * FROM table WHERE search= 'keyword'; //lets take ~0.2ms at 2nd time
Isso é particularmente útil ao comparar uma consulta; se o cache de consulta estiver ativado, embora a primeira consulta possa levar algum tempo, a segunda e as consultas subsequentes serão quase instantâneas. Com o uso de SQL_NO_CACHE, você pode ter certeza de que o cache de consulta não é usado e pode comparar com segurança os tempos de resultado. A dica SQL_NO_CACHE desativa o mecanismo de cache de consulta interno do MySQL para uma consulta específica. Você pode ajudar o MySQL a tornar o cache de consulta mais eficiente usando esta dica em consultas que são altamente dinâmicas (como uma pesquisa por palavra-chave ou um relatório que é executado apenas à noite). comando.
qual SQL_CACHE e SQL_NO_CACHE?
As opções SQL_CACHE e SQL_NO_CACHE afetam o armazenamento em cache dos resultados da consulta no cache de consulta. SQL_CACHE diz ao MySQL para armazenar o resultado no cache de consulta se for armazenável em cache e o valor da variável de sistema query_cache_type for 2 ou DEMAND. Com SQL_NO_CACHE, o servidor não usa o cache de consulta. Ele não verifica o cache de consulta para ver se o resultado já está armazenado em cache, nem armazena em cache o resultado da consulta. (Devido a uma limitação no analisador, um caractere de espaço deve preceder e seguir a palavra-chave SQL_NO_CACHE; um não espaço, como uma nova linha, faz com que o servidor verifique o cache de consulta para ver se o resultado já está armazenado em cache.)
NO_CACHE de acordo com minha opinião pode ser usado se 'CACHE' estiver habilitado e os dados no banco de dados forem atualizados dinamicamente, ou seja, o cache de dados do banco de dados não pode ser confiável, por exemplo:armazenando o hash da senha do usuário, não podemos confiar no CACHE, pois é frequente possibilidade de alteração de dados
Atualizações de cenários úteis
1) forçar a não usar o cache para testar a velocidade da consulta