Ich verbinde eine MySQL-Datenbank mit PHP Data Objects (PDO) und führe eine umfangreiche SQL-Abfrage durch. Normalerweise dauert es ungefähr 1500 ms; Ich muss es noch optimieren. Wenn ich das PHP-Skript zweimal mit einem kurzen Intervall dazwischen ausführe, dauert die Abfrage nur etwa 90 ms. Die Abfrage ist in beiden Fällen gleich. Wenn ich das Skript mit derselben Abfrage nach einiger Zeit erneut ausführe, dauert es erneut 1500 ms.
Warum das? Wird die Datenbank automatisch zwischengespeichert? Gibt es eine gewisse Zeit, in der die Datenbank den Cache speichert und ihn dann automatisch löscht?
Ich gehe davon aus, dass die Ergebnisse nicht von PHP zwischengespeichert werden können, da dies in zwei verschiedenen Threads geschieht. Ich würde nicht denken, dass PHP die Ergebnisse zwischenspeichern würde, da es nicht wissen kann, ob sich die Datenbank geändert hat.
Ich habe ein Skript, das jede Minute ausgeführt wird, um neue Zeilen in die Datenbank einzufügen. Dies könnte auch der Grund sein, dass es nach einiger Zeit wieder 1500 ms dauert; Der Cache wäre gelöscht worden, da die relevanten Tabellen nicht mehr dieselben sind.