![]() |
![]() ![]() |
![]() |
![]()
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? ![]() |
|
|
![]()
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
-------------------- :)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:24 |