Ostatnio zadziwiło mnie coś w moim zapytaniu.
Mianowicie po przestawieniu 2 słów, czas zapytania spadł z 11s do 0.5s
SELECT login, time, name, objects.id, elements, objects.obieg, users.id AS userid FROM objects LEFT JOIN objstates ON(objstates.objid = objects.id AND objstates.state = objects.currentstate) LEFT JOIN users ON (users.id = objstates.userid) WHERE currentstate='accepted' AND projid='19' AND actual='1' ORDER BY objstates.time, name
A dokładniej chodzi o ten kawałek
... FROM objects LEFT JOIN objstates ON(objstates.objid = objects.id AND objstates.state = objects.currentstate) LEFT JOIN ...
Gdy zamienię objects LEFT JOIN objstates na objstates LEFT JOIN objects
zapytanie zyskuje tyle czasu.
I teraz moje pytanko
Skąd mam wiedzieć do których tabel odwoływać się najpierw ?
Czytałem że LEFT JOIN na dużych tabelach spowalnia bardzo co można stosować w zamian ?
Wielkie dziękki za pomoc !
