Știam că un query nu se execută chiar în ordinea în care este scris. Mai știam și că SELECT
nu este executat primul ci că este după JOIN
-uri și WHERE
Nu știam însă că SELECT
este executat atât de târziu, după group by
, de exemplu.
Daca stai sa te gandesti, asa a-i implementa-o si tu, nu? Pana la urma e o selectie a coloanelor de returnat dupa obtinerea rezultatelor dorite. Poate e mai curios faptul ca limita e asa de tarziu aplicata.
pai cum ordonezi sau filtrezi daca aplici limita mai devreme?
n-or sa mai fie relevante pentru intreg setul de date, nu?
e destul de logic: mai intai pregatesti locul in care faci selectia, unesti, filtrezi si tot tacamul, selectezi, apoi ordonezi si limitezi.
Se poate folosi si explain pt a arata cum se face magia
Urasc oamenii care scriu in cod “LIMIT 1” WHY ?
Pentru ca daca la nivel de generare a rezultatelor tot aia e, la nivel de transfer de date salvezi milisecunde bune mai ales daca ai text in coloane. De obicei e prezentata durata de transfer a datelor sub forma: x rows fetched, 53ms (+483ms data transfer)
Mai e aspectul sortarii: sa returnezi doar cel mai scump produs e mai putin costisitor decat sa sortezi toate produsele.