J'interface une base de données MySQL avec PHP Data Objects (PDO) et exécute une requête SQL étendue. Normalement, cela prend environ 1500 ms; J'ai encore besoin de l'optimiser. Lorsque j'exécute le script PHP deux fois avec un court intervalle entre les deux, la requête ne prend que 90 ms environ. La requête est dans les deux cas la même. Lorsque j'exécute le script, avec la même requête, après un certain temps, cela prend à nouveau 1500 ms.
Pourquoi donc? La base de données se cache-t-elle automatiquement? Y a-t-il un certain temps que la base de données enregistre le cache puis le supprime automatiquement?
Je suppose que les résultats ne peuvent pas être mis en cache par PHP, car cela se produit dans deux threads différents. Je ne pense pas que PHP mettrait en cache les résultats, car il ne peut pas savoir si la base de données a changé.
J'ai un script qui s'exécute toutes les minutes pour insérer de nouvelles lignes dans la base de données. Cela peut également être la raison pour laquelle il faut à nouveau 1500 ms après un certain temps; le cache aurait été supprimé, car les tables pertinentes ne sont plus les mêmes.