Comment faire pour désactiver la mise en Cache de Requête MySQL

Je suis en train de faire quelque analyse comparative des différentes requêtes sur les différentes colonnes mais MySQL ne va pas me laisser faire. Après la première exécution d'une requête, je ne peux jamais obtenir le même temps d'exécution de cette requête à nouveau. Par exemple, si la requête s'exécute en 0.062 s la première fois, je ne peux jamais obtenir le même temps d'exécution pour les 2e, 3e, etc pistes. Il devient de 0 secondes ou quelque chose comme 0.015.

J'ai lu de nombreux messages sur la désactivation et la compensation de MySQL query cache, mais aucun d'eux n'a été d'aucune aide pour moi.

comme cela, AFIN de poster ici

Peu importe ce que je fais, MySQL semble insister sur l'utilisation des résultats mis en cache.

J'ai redémarrer le serveur MySQL Workbench puis-je exécuter;

set global query_cache_type=0;
set global query_cache_size=0;
flush query cache;
reset query cache;

Le temps d'exécution continue de s'afficher 0 secondes.

Seule variable de serveur que je n'ai pas été capable de changer est "have_query_cache". Sa valeur est "oui" et quand j'essaie de le régler sur "non" Workbench dit qu'il est en lecture seule.

Je fais aussi;

set profiling=1;
run my select query
show profile for query 2;

Profilage résultat montre ceci:

'starting', '0.000077'
'checking permissions', '0.000007'
'Opening tables', '0.000016'
'init', '0.000035'
'System lock', '0.000009'
'optimizing', '0.000013'
'statistics', '0.000094'
'preparing', '0.000008'
'executing', '0.000002'
'Sending data', '0.000016'
'end', '0.000002'
'query end', '0.000003'
'closing tables', '0.000005'
'freeing items', '0.000139'
'cleaning up', '0.000009'

Si je ne me trompe pas, cela montre qu'aucun caches sont utilisés droit? Mais je continue de voir les 0 secondes. pour le temps d'exécution.

Modifier: La question je suis en cours d'exécution est d'une requête de sélection à l'aide de "SQL_NO_CACHE" comme suit:

SELECT SQL_NO_CACHE col1,now() from mytable where col2="some_value"

(J'ai ajouté la fonction now() pour m'aider à prévenir la requête de mise en cache)

Edit2: j'utilise innoDB, MySQL 5.6.10

Quelqu'un pourrait-il m'aider car je ne peut pas voir ce qui se passe ici.

Merci beaucoup!

  • Est-il possible que, parfois, la requête s'exécute pour plus de 0 secondes si la charge de la base de données est élevé?
  • C'est hors-sujet et appartient à dba.stackexchange.com
  • Je ne comprends pas ce que tu veux dire mais il n'y a pas de charge sur la base de données maintenant. Je suis en train de faire ces tests sur mon développement local de la machine.
  • J'ai essayé d'exécuter ces 4 premières commandes dans votre post, après chaque requête..et il semble fonctionner. Les requêtes de prendre presque en même temps quand exécuter plusieurs fois successivement.