Logo lv.boatexistence.com

Vai tas būtiski ietekmēs veiktspēju?

Satura rādītājs:

Vai tas būtiski ietekmēs veiktspēju?
Vai tas būtiski ietekmēs veiktspēju?

Video: Vai tas būtiski ietekmēs veiktspēju?

Video: Vai tas būtiski ietekmēs veiktspēju?
Video: Cik partiju būs Siliņas valdībā un kādas būs tās prioritātes? 'Kāpēc' (pilns ieraksts) 2024, Maijs
Anonim

Jā, jo, izmantojot DISTINCT (dažreiz saskaņā ar komentāru), rezultāti tiks pasūtīti Simtiem ierakstu kārtošana prasa laiku. Izmēģiniet GROUP BY visās savās kolonnās, tas dažkārt var likt vaicājuma optimizētājam izvēlēties efektīvāku algoritmu (vismaz ar Oracle es pamanīju ievērojamu veiktspējas pieaugumu).

Vai ir slikti lietot atšķirīgu?

Nu, nepareiza vārda "atšķirīga" izmantošana ne tikai slēpj patieso problēmu (dublikātu ierakstus tabulās, nosacījumu trūkumu on klauzulā), kā minēts iepriekš, bet arī pasliktina vaicājuma veiktspēju… Tādējādi vaicājuma IO izmaksas (loģiskie nolasījumi) ievērojami palielināsies.

Vai atšķirības palēnina vaicājumu?

Ļoti daži vaicājumi var darboties ātrāk režīmā SELECT DISTINCT, un ļoti daži vaicājumi darbosies lēnāk (bet ne ievērojami lēnāk) režīmā SELECT DISTINCT, bet vēlākā gadījumā tas, visticamāk, ka lietojumprogrammai, iespējams, būs jāpārbauda dublikāti, kas pārvieto veiktspējas un sarežģītības slogu uz lietojumprogrammu.

Vai labāk ir izmantot atšķirīgu vai GROUP BY?

Pakalpojumā MySQL DISTINCT šķiet nedaudz ātrāk nekā GROUP BY, ja lauks nav indeksēts. DISTINCT novērš tikai dublētās rindas, bet šķiet, ka GROUP BY tās kārto papildus.

Kāpēc mums nevajadzētu lietot atšķirīgus SQL?

Ja problēmas “novēršanai” ir paredzēta atsevišķa izvēle, iespējams, pretī saņemsiet sliktu veiktspēju. GROUP BY ļauj izmantot apkopotās funkcijas, piemēram, AVG, MAX, MIN, SUM un COUNT. ATŠĶIRĪGA tikai noņem dublikātus.

Ieteicams: