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) ? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%)
|
Czyli profile można olać. Możesz wrzucać w cache do Redisa i ustawić TTL na np. 5h, ale to i tak nie ma sensu jeśli te dane nie są non stop wyświetlane .
Ad 2. Co będzie zawierał ranking? Imię, nazwisko i średnia ocen? Czy coś więcej? Ja bym to wpakował i tak w cache żeby nie pobierać z BD tego rankingu. Dodatkowo jeśli będzie tam stronicowanie to każdą stronę oddzielnie w cache dzięki temu zaoszczędzisz pamięć dla stron które nie będą wyświetlane. Ustawiasz sobie że czas życia takiego Cache to 24h i zapominasz. Możesz oczywiście ustawić czas na podstawie wyliczenia tak żeby jak odpalisz np. teraz stronę to czas był do końca dnia czyli 5,5h. Potem jak ktoś np. odpali o 10 rano pierwszy raz to będziesz miał już 14h. Dzięki temu unikniesz starych danych a świeże będziesz miał zawsze w kolejnym dniu. |
|
|
|
Userr [inne][PHP][MySQL]Cachowanie - kilka pytań praktycznych 12.03.2017, 10:26:38
by_ikar AD1 nie twórz swoich formatów, serializuj dane i j... 12.03.2017, 13:26:47
Pyton_000 A [p co wrzucać do cache informacje o profilach? A... 12.03.2017, 13:26:55
borabora należałoby zacząć od tego, że dla 10tys userów nie... 12.03.2017, 16:08:26 
Userr Cytat(borabora @ 12.03.2017, 16:08:26... 13.03.2017, 10:54:09
Userr Ranking będzie na początek zawierał tylko takie da... 14.03.2017, 11:59:31 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 14:25 |