Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Cache wyników zapytania
Forum PHP.pl > Forum > Przedszkole
kleszczoscisk
Witam

Przeszukałem forum, klasa Nospora jest zbyt trudna dla mnie, inne rozwiązania bazują na PEAR itp., a ja potrzebuję prostego buforowania według schematu:
Jeśli jest plik z wynikami zapytania z bazy to nie pobieram z bazy danych tylko go wyświetlam ale jeśli ten plik ma nieaktualne dane - pobieram z bazy świeże dane i go nadpisuję.
Znalazłem prosty przykład tu: http://wortal.php.pl/wortal/artykuly/proce...stronie_serwera
... i jest OK, tylko mała zagwozdka: jak sprawdzić czy plik z buforowanymi danymi ma aktualne dane? Pierwsza rzecz, która mi przychodzi do głowy to zapytanie do bazy i porównanie, np. ilości rekordów... ale czy to sie nie mija z celem? Przecież cache w założeniu ma być po to żeby nie oszczędzać na zapytaniach do bazy...?
Proszę o jakieś sugestie...
ikssde
Może po prostu pobieraj nowe dane co jakiś, określony czas, albo przy aktualizacji danych aktualizuj też cache.
kleszczoscisk
Chyba inaczej się nie da. Dzięki.
vokiel
Z zasady cache ma ograniczony czas ważności, ktory sie z góry określa tworząc go.
Czyli np
1. Żądanie jakiejś strony
2. Sprawdzasz w cache czy istnieje odpowiedni plik z czasem utworzenia < 30min od teraz
3a. Jeśli pliku nie ma, pobierasz dane z bazy > zapisujesz do cache > wyświetlasz
3b. Plik jest (jest aktualny) > wyświetlasz

Do cache możesz zapisywać wygenerowany html, bądź same dane.
Do sprawdzenia czy plik cache jest aktualny możesz sprawdzać datę i godzinę zapisaną w nazwie pliku (2009-05-06_23-03_kontrahenci.htm) bądź datę i godzinę utworzenia pliku ($utworzony = filemtime($nazwa_pliku)winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.