Lorsqu’on essaie d’améliorer une requête, que ce soit en
modifiant le plan d’exécution ou en réécrivant la requête, on
finit par choisir la variante dont le temps d’exécution est le
plus faible. Encore faut-il que ce temps d’exécution ne soit pas
falsifié par un quelconque cache. En cherchant comment désactiver
les caches de MySQL, vous avez certainement trouvé la directive
SQL_NO_CACHE. Cet article va faire le point sur ce que fait cette
directive, mais également sur ce qu’elle ne fait pas.
Si vous avez déjà eu besoin de mesurer le temps que prend une requête sur un serveur inactif, vous avez sans doute déjà rencontré ce cas de figure :
1ère exécution :
mysql> SELECT COUNT(*) AS total,YEAR(birth_date) AS
birth_year
FROM employees INNER JOIN salaries USING(emp_no)
WHERE first_name LIKE '%m%' AND salary > 50000 AND to_date
< '2010-12-31'
GROUP …