Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP][MySQL]Cachowanie - kilka pytań praktycznych
Userr
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 27.10.2015

Ostrzeżenie: (0%)
-----


1. Powiedzmy, że chciałbym zcachować informacje, które pojawiają się w profilach użytkowników (przykładowo tych profili będzie 10 000). W każdym profilu będą 3 tabelki, a w każdej z nich po 5 wierszy. Czy wydajniej będzie trzymać informacje z tych tabelek w trzech różnych plikach cache, czy w jednym (i np. rozdzieliłbym informacje z tych tabelek pustą linią (znak ENTER'a) lub jakimś ciągiem znaków np. ##################### i później w PHP już w prosty sposób byłoby rozdzielić to za pomocą explode())?

2. Jeżeli mam w pliku cache informacje składającą się z 100 000 wierszy i chciałbym dodać nowy wiersz, to nadpisuję zawartość całego pliku cache, czy jakoś tylko dodaje na sam koniec nowy wiersz?

3. Dlaczego wczytanie z cache jest szybsze niż zapytanie z relacyjnej bazy danych (nie mówię tu o jakimś bardziej złożonym zapytaniu, które wymaga dodatkowych obliczeń - np. sortowaniu, tylko o najprostszym select - wczytaniu zawartości tabeli)? Relacyjna baza danych jest przechowywana na HDD serwera, a gdzie jest przechowywany plik cache? W jakiejś specjalnej szybkiej (skoro wczytywanie z cache jest szybsze niż z relacyjnej bazy danych) pamięci cache - jakby nazwa wskazywała (IMG:style_emoticons/default/smile.gif) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Userr
post
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 27.10.2015

Ostrzeżenie: (0%)
-----


Ranking będzie na początek zawierał tylko takie dane: imię, nazwiska, średniej ocen. Jeżeli w przyszłości by się to zmieniło i zawierałby więcej danych w każdym wierszu, czy to by coś zmieniło?

Będzie stronicowanie - na jednej podstronie będzie wyświetlanych 100 wierszy z rankingu. Czyli jeżeli ranking będzie miał 100 000 wierszy, to będzie 1000 podstron po 100 wierszy na każdej podstronie. Czyli warto to zapisać w taki sposób, że zrobię 1000 plików cache i w każdym zapisać 100 wierszy?

Oprócz tego główne rankingu będę będę chciał zrobić rankingi miesięczne - jest tutaj takie samo założenie jak w tym rankingu głównym: "ranking będzie oczywiście widoczny cały czas na stronie, ale będzie aktualizowany tylko raz na dzień (powiedzmy o godzinie 0:00), czyli oceny z danego dnia będą widoczne w rankingu dopiero następnego dnia". Różnice są takie, że po pierwsze będą w nim średnie ocen tylko z miesiąca (po miesiącu ranking miesięczny zostaje zamknięty i otwierany zostaje nowy na nowym miesiąc, a ten dotychczasowy będzie nadal widoczny gdzieś na stronie, tylko przejdzie do archiwalnych rankingów miesięcznych i nie będzie nigdy aktualizowany), a po drugie będzie w nim wyświetlanych tylko 1000 uczniów z najlepszą średnią ocen z tego miesiąca.

Czy w przypadku tych rankingów miesięcznych też warto wrzucić to do cache na 24 godziny (a po upływie miesiąca taki cache nie byłby już nigdy aktualizowany, bo i ranking nie byłby nigdy aktualizowany)? I każdy ranking miesięczny podzielić na 10 plików po 100 wierszy (jak wspomniałem ranking miesięczny będzie miał 1000 pozycji)?

Ten post edytował Userr 14.03.2017, 12:03:00
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 07:57