Logo ky.boatexistence.com

Айрымдуулук майнаптуулукка таасирин тийгизеби?

Мазмуну:

Айрымдуулук майнаптуулукка таасирин тийгизеби?
Айрымдуулук майнаптуулукка таасирин тийгизеби?

Video: Айрымдуулук майнаптуулукка таасирин тийгизеби?

Video: Айрымдуулук майнаптуулукка таасирин тийгизеби?
Video: Мумкунчулу чектелген жарандар менен иштоодогу социалдык иштердин технологиясы 2024, Май
Anonim

Ооба, DISTINCT колдонуу (кээде комментарийге ылайык) натыйжалардын буйрутмаланышына алып келет Жүздөгөн жазууларды сорттоо убакытты талап кылат. Бардык тилкелериңизди GROUP BY кылып көрүңүз, ал кээде сурамдарды оптималдаштыруучуга натыйжалуураак алгоритмди тандоого алып келиши мүмкүн (жок дегенде Oracle менен мен майнаптуулуктун олуттуу жогорулашын байкадым).

Айкын колдонуу жаманбы?

Жакшы, "айырмалоону" туура эмес колдонуу, жогоруда талкуулангандай, чыныгы көйгөйдү жашырбастан (таблицалардагы кайталанма жазуулар, жөндөө пунктунда шарттын жоктугу), ошондой эле суроолордун натыйжалуулугун төмөндөтөт… Бул суроонун IO Баасын (логикалык окуу) бир топ жогорулатат.

Айырмасы суроону жайыраак кылабы?

SELECT DISTINCT режиминде өтө аз сурамдар тезирээк аткарылышы мүмкүн, ал эми өтө азы SELECT DISTINCT режиминде жайыраак аткарылат (бирок кыйла жайыраак эмес), бирок кийинки учурда бул мүмкүн болушу мүмкүн Колдонмого аткаруу жана татаалдык жүгүн колдонмого жылдырган кайталанма иштерди текшерүү керек болушу мүмкүн.

Белгилүү же GROUP BY колдонгон жакшыбы?

MySQLде DISTINCT GROUP BY караганда бир аз тезирээк көрүнөт, эгерде Field индекстелбесе. DISTINCT кайталануучу саптарды гана жок кылат, бирок GROUP BY аларды кошумча иреттейт окшойт.

Эмне үчүн биз SQLде айырманы колдонбошубуз керек?

Эгер көйгөйдү "оңдоо" үчүн так тандалган болсо, анда сиз анын ордуна жаман көрсөткүчкө ээ болушуңуз мүмкүн. GROUP BY AVG, MAX, MIN, SUM жана COUNT сыяктуу жалпы функцияларды колдонууга мүмкүндүк берет. DISTINCT жөн гана дубликаттарды алып салат.

Сунушталууда: