Gdy kombinacje PrestaShop zabijają wydajność: limity i obejścia

435 wyświetleń

Gdy kombinacje PrestaShop zabijaja wydajnosc: limity i obejscia

System kombinacji PrestaShop pozwala tworzyc warianty produktow. Dziala doskonale dla produktow z kilkoma wariantami. Ale gdy produkty maja setki lub tysiace kombinacji, wydajnosc drastycznie spada.

Dlaczego kombinacje powoduja problemy z wydajnoscia

Architektura bazy danych

PrestaShop przechowuje dane kombinacji w wielu tabelach: ps_product_attribute, ps_product_attribute_combination, ps_stock_available, ps_specific_price. Produkt z 5 rozmiarami i 10 kolorami tworzy 50 kombinacji z ponad 350 wierszami w bazie.

Problem wzrostu wykladniczego

AtrybutyWartosciKombinacjeWiersze BD
25 x 525~175
310 x 15 x 81 200~8 400
410 x 15 x 8 x 56 000~42 000

Praktyczne limity

LiczbaFront OfficeBack OfficeOcena
1-50SzybkoSzybkoBrak problemow
50-200AkceptowalnieAkceptowalnieDo opanowania
200-500Wolno (3-8s)WolnoPotrzebna optymalizacja
500-1000Bardzo wolnoBardzo wolnoRozwazyc restrukturyzacje
1000+NieuzywalneCzesto awarieRestrukturyzacja wymagana

Rozwiazanie 1 - Restrukturyzacja katalogu

Zamiast jednego produktu z 50 kombinacjami, stworz oddzielne produkty na kolor z 5 kombinacjami kazdy. Szybsze i lepsze dla SEO.

Rozwiazanie 2 - Optymalizacja bazy danych i serwera

ALTER TABLE ps_product_attribute 
  ADD INDEX idx_product_default (id_product, default_on);

ALTER TABLE ps_stock_available 
  ADD INDEX idx_product_attribute (id_product, id_product_attribute);

Rozwiazanie 3 - Lazy loading kombinacji

Zamiast ladowac wszystkie kombinacje przy wczytywaniu strony, pobieraj dane przez AJAX gdy klient wybiera atrybut.

Rozwiazanie 4 - Strategie cachowania

Cache calej strony (Varnish, LiteSpeed) dla stron produktow. Redis lub Memcached zamiast cachowania plikowego.

Kiedy unikac kombinacji calkowicie

  • Produkty konfigurowalne z 4+ atrybutami - Modul konfiguratora produktow
  • Produkty wymiarowe - Modul niestandardowych wymiarow
  • Produkty print-on-demand - Modul projektanta produktow

Rekomendacje wedlug liczby kombinacji

LiczbaZalecane dzialanie
Ponizej 100Brak potrzeby dzialania
100-300Indeksy BD, OPcache, Redis
300-1000Podzielic produkty, indeksy, lazy loading
Powyzej 1000Restrukturyzacja katalogu, modul konfiguratora

Czy ta odpowiedź była pomocna?

Masz jeszcze pytania?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Ładowanie...
Do góry