![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 12.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Mam to "szczęście", że muszę po poprzednikach poprawić zapytania w sklepie internetowym. W znacznym stopniu baza danych zostaje obciążona czego efektem jest wydłużony czas ładowania się strony. Zapytania wyświetlające listę produktów w sklepie:
zapytanie zostaje wywołane dwa razy: 1 dla listy produktów, 2 (jak wywnioskowałem) dla paginacji (ilość stron produktów). Indexy założone na tabele (nazwa tabeli - pola indexow): zestawy - id_zest(pk), id_kat, zdj, symbol; zestawy_jezyki - id_zest_l(pk), id_zest, id_lang, nazwa, opis, ivona(nie uzywane juz w sklepie pole w bazie), ivona_url(jak w przypadku ivony) zestawy_cechy - id_cech_l(pk) & id_zest, id_cech_l(pk), id_zest, wartosc produkty - id_prod(pk), id_user, id_vat, id_produc, id_zest, id_rodz, data_add, idx_stan, detal produkty_jezyki - id_prod_l(pk), id_prod, id_lang kategorie_zestawy - id_kat_zest(pk), id_kat & id_zest kategorie - id_kat(pk), id_user, id_gr Wszystkie tabele to MyISAM. Jakie są wasze sugestie co do optymalizacji tego zapytania ? Ten post edytował Petre 3.01.2013, 10:16:50 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam. To jest masakra - ile lat ma ten kod? Przede wszystkim przerobił bym to na InnoDB bo jest dużo odczytów a mało zapisów (o ile nie wpłynie to na inne rzeczy w systemie - trzeba by sprawdzić ale wątpie by wpłynęło). Jak już będzie na tym mechanizmie to przerobił bym zapytanka tak by widoczne były wszystkie JOINY - czyli zamiast FROM i listy tabel dałbym to w joinach i odpowiednio owarunkował. Jak już by to działało to zerknąłbym na indeksy i ustawił (jeśli nie ma) dla wszystkich pól jakie są wykorzystywane w WHERE, ON i ORDER.
Jak będziesz miał takie zapytanka (czyli dojdziesz do tego jak to powinno wyglądać) to wtedy można je przeanalizować i ewentualnie jeszcze zoptymalizować. Sama przeróbka powinna podnieść nieco wydajność (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 19:43 |