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

Pamięć cache a duża ilośc danych
SU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 247
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?

drorat1
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Krasnystaw
  • Postów: 1185
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:

Kopiuj
Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted

albo:

Kopiuj
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?

SU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 247
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.