Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Statystyka, Dodatkowe pola
deejay4net
post 28.05.2012, 11:39:33
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.06.2007

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


Witam

Pytanie dotyczy takiego rozwiązania, czy przy dużych bazach, które zawięrają np 200-300 tys użytkowników i każdy z nich posiada do tego np kilkadziesiąt rekordów (pliki, wpisy lub podobne rzeczy, małoważne..) nie jest dobrym rozwiązaniem dla ważnych rzeczy zrobić pól w tabeli usera na te dane? Np. `file_count` itd. żeby przy listowaniu
danych nie pobierać za każdym razem tej ilości, tylko odczytywać ją z pola? Zastanawia mnie to czy bardziej optymalne jest pobieranie tych ilości czy składowanie dodatkowych pól. Bo mimo rekordów z danymi kto i co pobrał chciałbym dodać jednak każdemu userowi pole `downloads_count` żeby przyśpieszyć działanie całego skryptu. Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
Firebright
post 28.05.2012, 19:07:43
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 3
Dołączył: 19.01.2011

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


Ja osobiście, na podstawie danych jakie podałeś, dodał bym takie pola. Tutaj musisz rozpatrzyć jak dużo będzie odwołań do tych pól oraz samych aktualizacji. Każde takie pole powoduje konieczność wykonywania dodatkowych operacji podczas aktualizacji tabel. Jeżeli aktualizacji będzie znacząco więcej niż odczytów pól przechowujących odpowiednie ilości, wykorzystanie tych pól przestanie mieć sens, narzut podczas aktualizacji przewyższy zysk podczas odczytu. Musisz też pamiętać o aktualizacji pól w każdym miejscu, w którym aktualizujesz tabele źródłowe (prawdopodobnie wyzwalacze są tu dobrym wyborem), w przeciwnym wypadku będziesz miał niespójne dane.
Go to the top of the page
+Quote Post
deejay4net
post 28.05.2012, 22:58:41
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 11.06.2007

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


Odczyt wydaje mi się dużo częściej używany, choćby lista userów gdzie do każdego chcę widzieć ilość plików na liście, w tym przypadku omijam count i zliczanie dla niektórych userów sporej liczby plików, wyświetlanie ich np po 50 i do każdego zczytywanie ilości plików czasami potrafi nawet spowolnić dosyć mocno bazę. Odczytując jedynie wartość pola nie odczuję tego praktycznie w ogóle tak mi się wydaje. Generowanie statystyk itp także dzięki tym fieldom będzie dużo bardziej proste i nie będzie wymagało aż tylu zapytań. Aktualizacja wiadomo, przy np wgraniu każdego kolejnego pliku. Pobrania odczytywane będą zapewne często więc także wydaje mi się np bardziej optymalne zrobienie SUM pola download np wszystkich plików usera niż COUNT dla wszystkich rekordów usera z pobraniami. Jakie Wasze zdanie na ten temat? smile.gif Jedyny minus jaki tutaj widzę to to że trzeba pamiętać przy dodawaniu i usuwaniu pliku o akutalizacji odpowiednich rekordów
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 24.06.2025 - 14:46