Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MyGad 2.0] problem z nieoptymalnym zapytaniem.
kaszanka
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

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


Hi,

Dziś rano dostałem maila od mojej firmy hostingowej które piszę, iż posiadam skrypt wykonujący nieoptymalne zapytania

- skypt MyGad 2.0 (opisy gg)
- rekordów/opisów w bazie: 36 563

log przesłane przez firmę:
Cytat
# Time: 071106 20:30:01
# User@Host: kaszanka[kaszanka] @ localhost []
# Query_time: 5 Lock_time: 0 Rows_sent: 19 Rows_examined: 694754
use kaszanka-opisygg;
SELECT c.*,count(d.id) AS count FROM mygad_categories c LEFT JOIN mygad_descs d ON (d.cat_id=c.id AND d.active="1") GROUP BY c.id ORDER BY name ASC;


Ktoś się może orientuje co w tym zapytaniu jest nie tak, że potrzebuje wczytać aż 694 tysiące rekordów skoro w bazie jest tylko 36 tysięcy i wynikowych tylko 19?

Mam 7 dni na optymalizację (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SirZooro
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Po pierwsze pozakładaj na bazę indeksy, bo tam w oryginale ich nie ma. Po drugie zrób sobie cache'owanie danych wyświetlanych na stronie głównej (menu, kategorie ostatnie opisy, najaktywniejsi użytkownicy) - ja trzymam je zserializowane w pliku, co daje znaczną optymalizację (mam zrobione automatycznie tworzenie tego pliku po jego skasowaniu - prosty sposób na wymuszenie odświeżenia po zmianie w panelu admina (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ). Poza tym polecam przejrzenie wszystkich skryptów - poza tym że skrypty są podatne na atak SQL Injection (w newsach też XSS), jest tam też masa innych pomniejszych błędów (np. brak jednej polskiej literki w funkcji obcinającej ogonki z polskich znaków (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 10:04