Autor Zpráva
Mata.lan
Profil *
Potřeboval bych optimalizovat tento dotaz:
SELECT tabulka1.*, tabulka2.*, tabulka3.sloupec3
	FROM tabulka1 
	LEFT JOIN tabulka2 
	ON tabulka1.sloupec0 = tabulka2.sloupec0 
	LEFT JOIN tabulka3 
	ON tabulka2.sloupec0 = tabulka3.sloupec0 
	ORDER BY tabulka1.sloupec0

tabulka1 má 3500 záznamů kde sloupec0 je PRIMARY
tabulka2 má 2000 záznamů kde sloupec0 je UNIQUE
tabulka3 má 2000 záznamů kde sloupec0 je UNIQUE

Celej dotaz trvá 13 sekund, což je příšerně moc. Jde to nějak optimalizovat?
Joker
Profil
A jaký mají ty sloupce datový typ? 13 sekund mi při uvedených podmínkách přijde nějak moc.
Kcko
Profil
- pocet zaznamu v tabulkach
- datovy typ spojovanych sloupcu
- indexy
- celkovy pocet sloupcu v jednotlivych tabulkach

???
Mata.lan
Profil *
Záznamy
tabulka1 - 3500
tabulka2 - 2000
tabulka3 - 2000

Datovy typy:
sloupec0 vždy varchar(30)
např: MD400VD256

indexy jsou trošku jinak, než jsem psal:
tabulka1 - id je UNIQUE (v dotazu ale není potřeba), sloupec0 index nemá
tabulka2 - sloupec0 je PRIMARY
tabulka3 - sloupec0 je PRIMARY

V tabulka1 je 11 sloupců, v tabulka2 a tabulka3 je 10

...no, ale zjistil jsem, že v tabulka2 jsem zapoměl PRIMARY key nadefinovat, tak jsem ho přiřadil a dotaz se zkrátil na 1,4 vteřiny. Je to možny? takovej rapidní skok? Z catche to netahám, zkoušel jsem to i po hodně delší době.

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: