![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Kolega posiada serwis (hosting zdjęć) robiony na zamówienie, jednak poprawiam pewne niedoróbki, mianowicie dziś stanęło na zapytaniu, które na serwerze nazwa.pl wykonuje się .. 15 sekund. Za pomocą tego zapytania udało mi się skrócić czas wykonania zapytania do ~0,9 sekundy.
i teraz tak: Są 3 tabele: forum_users - gdzie jest większość danych o użytkowniku, tbl_zdjecia - czyli informacje o zdjęciach oraz tbl_oceny - czyli oceny wystawiane zdjęciom. Zasadniczo zapytanie to pobierać ma id, nazwę użytkownika, datę rejestracji (u.registered), avatar (u.use_avatar), dodatkowo ma zliczać ilość zdjęć danego użytkownika (z.id) oraz wyliczać średnią ocen - do tego użyłem round w celu zaokrąglenia i avg. Target_owner to oczywiście id użytkownika w tabeli tbl_oceny. To moje pierwsze doświadczenia ze złączeniami (w końcu je zaczynam rozumieć), jednak zapytanie przy tych 3 tabelach ciągle wykonuje się lekko poniżej 1 sekundy - czy jest jakaś szansa na większą optymalizację? Ktoś z was ma jakieś sugestie? Wcześniej obliczanie średniej było wykonane zagnieżdżonym SELECTem. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź co pokaże EXPLAIN, będziesz wiedział co jeszcze można poprawić
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:34 |