Pamięć cache a duża ilośc danych

0

Dzień dobry. Wiadomo że dużą ilość danych, które pobierane są z bazy powinno się w jakiś sposób sortować na przykład przez paginację, aby całość nie wyświetlała się za każdym razem gdy ktoś wejdzie na daną stronę, jednakże istnieje także pamięć cache, czy władowanie tam tych danych i wymuszenie "odnawiania" owej pamięci raz dziennie załatwi sprawę bez potrzeby wykonywania paginacji? Z jednej strony podczas paginacji będzie pobierana porcja całości danych więc zapytanie będzie wykonywało się krócej, ale za każdym razem gdy ktoś wejdzie na stronę, jeśli wyciągniemy całość danych i wrzucimy je do pamięci cache, to zapytanie będzie trwało dłużej, pamięć cache będzie więcej ważyła, ale to zapytanie będzie wykonywało się tylko raz dziennie. Chyba najoptymalniejszym byłoby połączenie tych dwóch funkcji, ale co jeśli musimy wybrać jedną z nich?

0

Nie. Nie chcesz paginacji to robisz np. coś takiego, że podczas scrollowania strony w dół używasz AJAX-a żeby wczytywać kolejne rekordy i wyświetlać to na stronie. Albo przycisku pokaż więcej.
A w tym przypadku o którym piszesz to jeśli nie otrzymasz pustego ekranu albo błędu typu:

Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted

albo:

Fatal error: Maximum execution time of 30 seconds exceeded

to nawet jeśli byś coś zapisywał i odczytywał z cache (serializacja / deserializacja) to sobie sprawdź ile czasu minie zanim będziesz miał wynik w przeglądarce a wcześniej czas zapisu do cache (microtime, memory usage).

A jak nie wierzysz to wczytaj sobie choćby XML z milionami danych np. taką sitemapę albo wypluj w PHP na ekran dziesiątki tysięcy, miliony danych nawet nie z bazy tylko w jakiejś pętli. Mam rozumieć że jak masz miliony wpisów to ty chcesz to wszystko wypluwać na jednej podstronie?

0

Dziękuję za odpowiedź @drorat1, faktycznie, taka sytuacja o której wspomniałeś nie może mieć miejsca.

1 użytkowników online, w tym zalogowanych: 0, gości: 1