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 |
|
|
|
![]() |
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. |
|
|
|
Inscure Cache tabeli użytkowników 5.02.2012, 13:04:26
lobopol Nie w takiej formie. Cache całej tabeli jest bezse... 5.02.2012, 13:20:38
erix CytatCo myślicie: cache tej tabeli ma jakiś sens?
... 7.02.2012, 10:18:13
ActivePlayer po pierwsze - zależy gdzie chcesz trzymać taki cac... 7.02.2012, 10:24:05
erix Cytatpo pierwsze - zależy gdzie chcesz trzymać tak... 7.02.2012, 10:26:34 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 00:15 |