Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] produkty sugerowane
Karen
post 28.06.2013, 17:16:49
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:

  1. SELECT * FROM `produkty` WHERE `produkt_id` IN (SELECT `cart_pid` FROM `cart` WHERE `cart_ucode` IN
  2. (SELECT `cart_ucode` FROM `cart` WHERE `cart_pid` = '$id' GROUP BY `cart_ucode`)
  3. AND `cart_pid` <> '$id' AND cart_orderid<>'' GROUP BY `cart_pid` ORDER BY count(cart_pid) DESC) LIMIT 3

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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Karen
post 29.06.2013, 16:56:00
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.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 17:27