Łączę bazę danych MySQL z PHP Data Objects (PDO) i wykonuję rozległe zapytanie SQL. Zwykle zajmuje to około 1500 ms; Nadal muszę to zoptymalizować. Kiedy uruchamiam skrypt PHP dwa razy z krótką przerwą pomiędzy nimi, zapytanie zajmuje tylko około 90 ms. Kwerenda jest w obu przypadkach taka sama. Po uruchomieniu skryptu z tym samym zapytaniem po pewnym czasie ponownie zajmuje 1500 ms.
Dlaczego? Czy baza danych buforuje się automatycznie? Czy baza danych zapisuje pamięć podręczną i automatycznie ją usuwa?
Zakładam, że PHP nie może buforować wyników, ponieważ dzieje się tak w dwóch różnych wątkach. Nie sądzę, że PHP zbuforuje wyniki, ponieważ nie może wiedzieć, czy baza danych uległa zmianie.
Mam skrypt uruchamiający się co minutę, aby wstawić nowe wiersze do bazy danych. Może to być również przyczyną, że po pewnym czasie zajmuje to 1500 ms; pamięć podręczna zostałaby usunięta, ponieważ odpowiednie tabele nie są już takie same.