SQL query execution order

Ș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.

Tot thread-ul aici. (thread & mirror)

4 Likes

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 :slight_smile:

1 Like

Urasc oamenii care scriu in cod “LIMIT 1” WHY ? :bang_head_on_wall:

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)

1 Like

Mai e aspectul sortarii: sa returnezi doar cel mai scump produs e mai putin costisitor decat sa sortezi toate produsele.

1 Like