Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 30.10.2005 Ostrzeżenie: (0%)
|
Witam wszystkich,
Troszke pogrzebałem po formu ale nie znalazłem nic ciekawego w tym temacie (z góry proszę jak ktoś znalazł coś podobnego p podanie linka). Mój problem jest taki: pracuję od niedawna dla pewnej firmy, która prowadzi portal i wszystko by było ładnie gdyby nie jedna rzecz. Wszelkie dane z portalu są logowane do jednej tabeli ma on już 560 tyś rekordów (ciągle rośnie) i na niej oparte są wszelkie statystyki, które codzeinnie czyta mój szef. Szef musi mieć wszystko na wczoraj wiec jak wykonanie pewnego zapytania trwa np 40 sek i jeszcze przekroczy ttl przeglądarki i nic mu nie wyświetli to się denerwuje. Ja mam pomysł żeby rozbić to wszysko na lata tzn. log_2004, log_2005, log_2006 itd. wtedy tabele były by dużo mniejsze i zapytania dla poszczególnych lat trwały by krócej tylko, że zapytanie o wszystkie lata znów by było strasznie długie Oto struktura tabeli:
Z góry dzięki za każdy pomysł. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%)
|
Cytat(yaaa @ 2006-01-10 10:54:09) Tylko że ja mam takich zapytań kilkadzieiąt lub nawet kilkaset, bo jak wspomniałem wszelkie statystyki są oparte na tej tabeli a nowe ciagle przybywaja. Szef co dziennie chce miec mozliwosc inwigilowania czegos nowego i te zaptanie staja sie coraz to bardziej skomplikowane To w koncu jedno zapytanie wykonuje sie ~40 sekund czy caly zestaw zapytan generujacych statystyki ? Jesli to pierwsze to raczej jest wina tego konkretnego zapytania.. ale mam przeczucie, ze chodzi o to drugie, zatem na jedno zapytanie przypada juz ulamek sekundy, co jest sensowna wartoscia. Podobnie jak poprzednik sugeruje jakas metode cache'owania. Ja w swoim obecnym projekcie mam statystyki, ktore sa generowane przez ok 20 zapytan, w sumie niecala sekunda.. a mimo to denerwowal mnie ten lekki przestoj i zdecydowalem sie na cache'owanie ich na godzine. Jesli masz dostep do cron'a to mozesz je generowac z jego poziomu, a na stronie wyswietlac juz statyczne dane, bedzie to chyba najlepsze rozwiazanie. |
|
|
|
yaaa Optymalizacja tabeli 10.01.2006, 10:27:03
FiDO Podaj jesli mozesz to zapytanie.. byc moze to wlas... 10.01.2006, 10:31:54
yaaa Cytat(FiDO @ 2006-01-10 09:31:54)Podaj jesli ... 10.01.2006, 10:54:09
yavaho Moim skromnym zdaniem problemem nie jest tu ilosc ... 10.01.2006, 11:08:34
yaaa Cytat(FiDO @ 2006-01-10 10:30:11)To w koncu j... 10.01.2006, 13:13:44
FiDO Jesli masz dostep do crona to najlepszym pomyslem ... 10.01.2006, 14:05:30
SongoQ Lepiej jest poprawic zapytanie i czas bedzie mniej... 10.01.2006, 14:17:36
yaaa Cytat(SongoQ @ 2006-01-10 13:17:36)kolejna rz... 10.01.2006, 15:13:52
SongoQ LIKE mozesz zamienic na tabele posrednie, gdzie ja... 10.01.2006, 15:53:30
yaaa Wielkie dzięki dla was chłopaki (Fido i SongoQ) za... 12.01.2006, 23:32:01 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 10:06 |