Autor Zpráva
pablo
Profil *
Ahoj, může mi prosím někdo vysvětlit proč mysql neaplikuje index(id, jmeno) na tento dotaz:
EXPLAIN SELECT id, jmeno
FROM auto
WHERE id
IN (
SELECT id_hl
FROM auto
WHERE id_hl = 'xxx'
)
ORDER BY jmeno

zatimco na tenhle ho aplikuje?
EXPLAIN SELECT id, jmeno
FROM auto
WHERE id
IN (
'5','6'
)
ORDER BY jmeno

Díky
pablo
Profil *
zatimco na tenhle ho aplikuje(bez otazniku)
EXPLAIN SELECT id, jmeno
FROM auto
WHERE id
IN (
'5','6'
)
ORDER BY jmeno
Kajman_
Profil *
Mysql občas poddotazy ve where dokáže vyhodnocovat pro každý řádek zvlášť jako korelované poddotazy, i když nezávisí na jiných tabulkách. Nejsem si jistý, ale někde jsem tuším četl, že novější verze by tí snad už neměly trpět. Každopádně se osobně snažím takové dotazy preventivně přepsat do spojení...

SELECT id, jmeno
FROM auto,  (
SELECT id_hl
FROM auto
WHERE id_hl = 'xxx'
) tmp
WHERE id=tmp.id_hl
ORDER BY jmeno
pablo
Profil *
jojo díky, podívám se na to

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: