Je teste la vitesse de certaines requêtes dans MySQL. La base de données met en cache ces requêtes, ce qui rend difficile pour moi d'obtenir des résultats fiables lors du test de la rapidité de ces requêtes.
Existe-t-il un moyen de désactiver la mise en cache pour une requête?
Système: MySQL 4 sur l'hébergement web Linux, j'ai accès à PHPMyAdmin.
Merci
Une autre alternative qui affecte uniquement la connexion actuelle:
la source
query_cache_size
je regardais, nonquery_cache_type
. Je confondais la vôtre et la réponse de SeniorDev.Toute référence à la date / heure actuelle désactivera le cache de requête pour cette sélection:
Voir "Conditions préalables et notes pour l'utilisation du cache de requêtes MySQL" @ http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html
la source
Il existe également une option de configuration: query_cache_size = 0
Voir http://dev.mysql.com/doc/refman/5.1/en/query-cache.html
la source
Vous pouvez également exécuter la commande follow pour réinitialiser le cache de requêtes.
la source
Un problème avec le
est qu'elle semble empêcher uniquement la mise en cache du résultat de votre requête. Cependant, si vous interrogez une base de données qui est activement utilisée avec la requête que vous souhaitez tester, d'autres clients peuvent mettre en cache votre requête, affectant vos résultats. Je continue à rechercher des moyens de contourner ce problème, modifierai ce message si j'en trouve un.
la source
J'utiliserais ce qui suit:
la source
L'utilisation d'une variable définie par l'utilisateur dans une requête rend la requête impossible à mettre en cache. Je l'ai trouvé un bien meilleur indicateur que l'utilisation
SQL_NO_CACHE
. Mais vous devez placer la variable à un endroit où le réglage de la variable n'affecterait pas sérieusement les performances:la source
SQL_NO_CACHE
." Comment? Il semble que vous auriez besoin d'un argument assez solide pour utiliser un piratage obscur sur un mot clé explicite, à moins que le mot clé explicite ne fasse pas ce qu'il prétend.Si vous souhaitez désactiver le cache de requête, définissez 'query_cache_size' sur 0 dans votre fichier de configuration mysql. Si son ensemble 0 mysql n'utilisera pas le cache de requête.
la source