Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] optymalizacja
propage
post
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

Ostrzeżenie: (0%)
-----


mam proste zapytanie
Kod
SELECT product_id FROM produkt p left join produktML m pML on (pML.produckt_id = p.produkt_id)  WHERE  (
                    ( MATCH(pML.product_url) AGAINST ('test')) OR
                    (   p.prodcukt_code = 'test')
                        )

Zapytanie wykonuje się w czasie 1 s.
Kod
SELECT product_id FROM produkt p left join produktML m pML on (pML.produckt_id = p.produkt_id)  WHERE  (
                     MATCH(pML.product_url) AGAINST ('test'))
                     )

Zapytanie wykonuje się w czasie 0.001 s.

Kod
SELECT product_id FROM produkt p left join produktML m pML on (pML.produckt_id = p.produkt_id)  WHERE  (
                    
                    (   p.prodcukt_code = 'test')
)

Zapytanie wykonuje się w czasie 0.001 s.


Trochę dziwne wydaje mi się, że jeśli te dwa warunki umieszcze razem w jednym zapytnaiu do zapytanie wykonuje się 50 razy dłużej niż, jak osobno (i summuję ich czas). Jest jakiś sposób na zoptymalizowanie 1 zapytania? W bazie jest 200 tys rekordów.

Ten post edytował propage 16.09.2013, 16:50:05
Go to the top of the page
+Quote Post
-arrtxp-
post
Post #2





Goście







Wniosek jest jeden, zapytanie w zapytaniu nie zawsze jest optymalne : )
Czasem lepiej rozbić to na dwa (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
propage
post
Post #3





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

Ostrzeżenie: (0%)
-----


ale tutaj nie ma zapytania w zapytaniu jest tylko jedno WHERE x OR y
Go to the top of the page
+Quote Post
redeemer
post
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Zrób explain na zapytaniach, a wszystko się powinno wyjaśnić (zwróć uwagę na kolumny rows, key i Extra).
Go to the top of the page
+Quote Post
propage
post
Post #5





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

Ostrzeżenie: (0%)
-----


robiłem, jest wszedzie `index' lub `where' wiec wszystko chyba jest ok.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No niestety tak bywa.... zrob UNION na tych dwoch zapytaniach i bedziesz mial szybko i w jednym zapytaniu (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 27.08.2025 - 09:40