Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]dane sumaryczne - count, czy osobna tabela?
siemieng
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 7
Dołączył: 16.01.2007

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


Zastanawiam się nad lepszym, zarówno pod względem wydajnościowym jak i lepszym logicznie rozwiązaniem dotyczącym uzyskiwania danych zbiorczych (sumarycznych) zapisanych w bazie danych, czyli np. suma artykułów w serwisie, suma użytkowników aktywnych. nieaktywnych, wszystkich itd....

Ja rozważam 2 rozwiązania:
1. oparte o osobną tabelę w bazie danych, w której miałbym dwa pola, jedno oznaczenie tego co zliczam w nim, i drugie wartość - tyle, że takie rozwiązanie w sumie może nie potrzebnie generowało by sporą ilość dodatkowych zapytań do bazy, bo każde dodanie, usunięcie artykułu w bazie wiązało by się z osobnym zapytaniem do tabeli zliczającej zwiększające lub zmniejszające od 1 odpowiednią wartość....
2. standardowe pytanie zliczające np. ilość aktywnych użytkowników, i np. funkcja count zastosowana w odniesieniu do tablicy wyniku, to jak sądzę dobry sposób przy niewielkiej ilości danych - kiedyś czytałem w jakimś artykule o optymalizacji wykorzystania bazy danych, iż taki rozwiązanie do ogromne marnowanie zasobów obliczeniowych serwera....

Innych rozwiązań jak na obecną chwilę nie mam, jakie jest wasze zdanie w tej kwestii, jak wy realizujecie takie zagadnienia?questionmark.gif
Go to the top of the page
+Quote Post
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


hmm.. gdy ja zrobiłem coś takiego jak twój punkt 2 (czyli zapytanie select count(id) from...) w swoim skrypcie forum i było np 100userów, 10 tematów, 50 postów to było git, jednak gdy masowo zrobiłem kilka tysięcy postów / userów to forum drastycznie spowolniło (nawet do kilku sekund). Szukając rozwiązania zrobiłem tak jak piszesz w punkcie 1, więcej zapytań, ale jednak wszystko chodzi szybciej, dla porównania w moim przypadku czas wykonywania skyptu jest mniejszy niż 0.1, zwykle na poziomie 0.02 - 0.03s


--------------------
:)
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 Aktualny czas: 20.08.2025 - 05:24