![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam zapytanie, a w nim ID kategorii, podkategorii i podpodkategorii itd..
Zapytanie działa, ale wolno mimo iż mam klucz INDEX na pola: CAT_Id, PRD_Deleted, PRD_Active
ID kategorii wstawiłem do IN bo uznałem że tak powinno być dobrze ale przy bazie która zawiera około 65k produktów (tabela products, typ: InnoDB) działa troche za wolno, a przynajmniej nie tak jak bym chciał (IMG:style_emoticons/default/smile.gif) Ma ktoś pomysł jak to inaczej zmontować? Ten post edytował sniver 18.05.2010, 07:34:26 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 706 Pomógł: 108 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
To:
to chyba nie jest najlepszy pomysł. Powinieneś brać JEDEN identyfikator danej kategorii/podkategorii. Jeśli sensownie zaprojektowałeś strukturę tabeli kategorii, to baza "wie" przecież która kategoria należy do której. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 5 Dołączył: 31.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
no własnie i tu jest problem bo nie wiem jak to zmontować. Przedstawiam strukturę bazy
Tabela z kategoriami:
Tabela z produktami:
I teraz odrobina wyjaśnienia. Tabela z kategoriami posiada licznik który się "samoaktualizuje" przez zadanie w Cron'ie. Struktura oparta jest o nieoptymalny PARENT_Ip i optymalne rozwiązanie tz. drzewo IP. Parent nie jest używany - został tylko w bazie aby łatwiej mi było tym zarządzać... Produkty są "podpięte" pod ostatnie zagnieżdżenie czyli pod ostatniego potomka. Przeglądając kategorie brana jest liczba z pola: CAT_Counter - i to działa ok. Ale aplikacja przy której pracuje ma inne dodatkowe "rozwiązania". Np. Możliwość sparametryzowania produktów (np. kolor (różowy, żółty, zielony itd.), rozmiar (XL, M, S itp.)) i ta część działa cacy... Ale gdy chcę te produkty rozbić i pokazać do jakich kategorii należą pojawia się problem z czasem wykonywania zapytania... I nie mam pomysłu jak to inaczej rozwiązać |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 09:03 |