Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Statystyka, Dodatkowe pola
Forum PHP.pl > Forum > Bazy danych > MySQL
deejay4net
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.
Firebright
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.
deejay4net
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.