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
ActivePlayer
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


na 4developers zeszłorocznym był gość, który o tym opowiadał.

generalnie mają sieć serwerów, każdy z nich ma swoją instancję apache + memcache + jeszcze jakaś struktura główna której nie do końca pamiętam. w praktyce wyglądało to tak że wszystko było trzymane w memcache, a tylko w przypadku braku aktualności danych, doczytywane one były z serwerów "wyższego poziomu" - również memcache a na końcu z bazy danych.

odnośnie marnowania pamięci - umówmy się - dla zastosowań o których rozmawiamy (pewnie nie o milionach userów) takie rozwiązanie jest do przyjęcia. oczywiście można później obcinać cache o pewne dane, które nie są zawsze potrzebne (np trzymać tylko nick, imie, id avatara, etc) ale to wymagało by chyba dyskusji na większym poziomie szczegółowości. Dla baz które mają po 5000 użytkowników, nawet 200MB zajęte przez memcache to pryszcz. w sumie rozwiazanie nie głupie bo zazwyczaj wąskim gardłem na małych serwerach jest procesor a nie brak ramu.
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: 28.12.2025 - 00:15