Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Cache tabeli użytkowników
Inscure
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 4
Dołączył: 18.09.2010

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


Witam,

Ostatnio spotkałem się ze stwierdzeniem, że optymalnie jest zrzucać całą tabelę użytkowników do cache i z pliku odczytywać potrzebne dane.
Wydaje mi się to mniej wydajne niż odczyt z bazy gdzie nałożony jest indeks na kolumny, po których uzyskiwane są dane użytkownika.

Załóżmy, że tabela z użytkownikami posiada 50 000 rekordów w około 15 kolumnach.
Cache jest tworzony przez serializację do pliku całej tabeli oraz trzymany aż do zarejestrowania nowego użytkownika lub zmiany danych już istniejącego.
Ponadto z cache nie są odczytywane dane takie jak ostatnia wizyta (bo wiadomo, zmienia się z każdym odświeżeniem (leci zapytanie do DB aktualizujące)), jedynie sprawdzanie czy user taki istnieje w bazie (czyli w cache) oraz wyświetlanie podstawowych jego danych, takich jak nazwa, e-mail itd.

Co myślicie: cache tej tabeli ma jakiś sens?

Ten post edytował Inscure 5.02.2012, 13:10:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
po pierwsze - zależy gdzie chcesz trzymać taki cache. jeśli w pamięci ram (np za pomocą memcached) to ma sens.

Nie do końca. Bo marnujesz wówczas pamięć - baaaaaaaardzo rzadko zdarzają się sytuacje, w których 100% bazy jest wczytywany. Pomijam już fakt problemów z synchronizacją.

Cytat
z tego co wiem nk.pl używa tego rodzaju cache. tzn jeśli wyszukujesz znajomych, to wysyłają zapytanie do bazy danych "select user_id from friends..." (nawiasem też to cachują) a potem każdego usera odczytują już bezpośrednio z memcache, lub jeśli części danych to doczytują je z bazy i wstawiają potem do cache, dla przyszłych requestów).

Cache w nk.pl, to w ogóle majstersztyk. Jak mi o tym znajomy opowiadał, to miałem oczy jak pięciozłotówki. (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 01:54