![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam 3 tabele, z których potrzebuję wyciągnąć dane
Produkty - z niej potrzebuję ID produktu (w bazie 6000 rekordów) Dokumenty - dokumenty do produktów - potrzebuję status dokumentu ( w bazie ok 5000 rekordów) Zamówienia - tutaj też potrzebuje tylko ID zamówienia jeśli istnieje do danego produktu ( w bazie około 15 000 rekordów)
Pokrótce: Wyciągam tylko te produkty, które nie mają zamówienia lub dokument nie jest zaakceptowany Zapytanie działa w miarę poprawnie, jest to lekkich poprawek bo dokumentów moze być więcej niż jeden i trzeba sprawdzić czy ostatni jest zaakceptowany, ale ważniejszym problemem jest to, że takie zapytanie SQL robi w okolo 2 minuty. Macie jakieś pomysły jak to zoptymalizować? Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
36 sekund to pare razy szybciej niz 120 sekund
![]() Zawsze mozesz uzyc EXPLAIN i sprawdzic co dokladnie kuleje. Jesli i to nie pomoze to warto by najpierw joinowac ZAMOWIENIA potem DOKUMENTY, ale DOKUMENTY po produkcie z zamowien. Unikniesz mnozenia rekordow -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 21:10 |