Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cachowanie zapytań
Forum PHP.pl > Forum > Bazy danych > MySQL
Hekko
Zrobiłem sobie na stronie cachowanie zapytań wg http://webcity.pl/webcity/artykuly.php/t/51

Ale to jest tylko cachowanie podczas przeglądania strony, elementów jest sporo i się zmieniają, jest to lista produktów podzielona na wiele stron i jak dojdzie kilka produktów to starsze się przesuwają na dalsze strony ale nie w cachu, jak z robić taki skrypt odpalany raz dzienni który będzie uaktualniać cache dla każdej strony wników ? Lub ewentualnie inne rozwiązanie ?
ARJ
przy dodawaniu produktów opróżniasz cache ich dotyczący lub tworzysz skrypt opróżniający cache i wrzucasz to w cron który odpala to raz dziennie (czy ile razy tam trzeba).
ale wg mnie najlepszy byłby chyba pierwszy sposób.
Hekko
A czy nie lepiej (mniejsze obciążenie) zrobić update tego cachu ? Tzn raz dziennie w cronie bedzie kasowany cache i odnawiany ?
ARJ
teoretycznie tak - mniejsze obciążenie serwera. jednak jeżeli produkty zostaną dodane rano, a update wykonywany będzie wieczorem to będą one nie widoczne aż do jego wykonania. można także zostawiać jakąś informację (w pliku?) o tym, że produkty zostały dodane i które pliki cache należy wyczyścić. co godzinę cron będzie sprawdzał ten plik i jeżeli będzie wpis, że należy wyczyścić cache to wtedy skrypt usunie pliki już nieaktualne.
Hekko
No właśnie tylko nie potrafię zrobić cache całej bazy za jednym razem. Chodzi mi o cache pojedyńczgo produktu + cache podstron w przegladaniu, np 1-20, 21-40, 41-60 itd ...
ARJ
przyjmijmy, że cache będzie tworzony przy pierwszym wejściu, a nie przy kasowaniu plików. pliki cache które trzymają informację na temat produktów (czy to pojedynczego, czy też strony z kilkoma produktami) muszą mieć wspólny początek. skrypt wywoływany przez crona i wywala pliki z ustawionym przedrostkiem. w ten sposób pozbywasz się nieaktualnego cache`u. nowy stworzy się przy pierwszym wejściu na daną stronę.
envp
Kurde widze maly balagan w rozumowaniu, stworz sobie cache w miejscu gdzie bezposrednio tworzone jest zapytanie do bazy (chodzi tu o model w ideologi MVC) a widok pozostaje nienaruszony i tak nie wie skad model bierze dane,. Model niech sobie sprawdza expire cache'u i z niego czyta ewentualnie kasuje go i zapisuje od nowa...
Sh4dow
Mozesz cache podpiac do jakiegos sterownika bazy danych, wtedy nawet model nie za bardzo bedzie wiedział skad sie bierze wynik. Ale dodatkowo dla niektorych podstron mozesz przeciez zrobic cache całej strony. Wtedy nawet nie wywołujesz wszystkich modeli, nie sprawdzasz nawet cache, procz cache widoku. Czesto duzo bardziej wydajne przy czesto odswierzanych stronach a nie edytowanych. Jesli używasz szablony Smarty to masz wbudowany cache, tylko musisz zrobic obsługe ktora strona ile ma byc trzymana w cache a ktore wogole nie maja byc cach'owane.
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.