![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 23.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam pytanie do odnośnie optymalizacji zapytania / funkcji. Otóż potrzebuję zrobić w sklepie sugerowane produkty dla tych które zostały wcześniej zakupione. Moje zapytanie wygląda tak:
Prostymi słowy: pobiera koszyki (wszystkie produkty są w koszyku - nawet te już kupione) gdzie był dany produkt i wyświetla 3 inne posortowane częstością kupienia. Niestety przy 100 produktach w sklepie, a 1000 w koszykach zapytanie zaczyna bardzo zamulać. Czy mogę to jakoś zoptymalizować lub możecie poradzić jak sami z taką funkcją sobie poradziliście? Z góry dzięki za pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 1 Dołączył: 23.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak, na 100% to to zapytanie. Jak wyczyszczę koszyk to wszystko działa płynnie.
Z drugiej strony jak właśnie było to 1000 rekordów to pierwsze wywołanie tego zapytania trwało 7sek (dosłownie), a po wykonaniu tego samego zapytania ponownie (przy tym samym ID) wykonywało się od razu. Przypuszczam, że wtedy wczytuje z cachu mysqlowego. EXPLAIN i profilowanie nic nie dawało, bo wrzucając to zapytanie przez phpmyadmina wyskakiwał biały ekran. Przy show profile for query wyskakuje tysiące małych pakietów(?). Każde po ułamek sekundy, ale razem składają się na te 7 sek. Sam serwer stoi na konkretnej maszynie i raczej nie jest to problem sprzętowy. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 17:27 |