Айырмашылық өнімділікке әсер ете ме?

Мазмұны:

Айырмашылық өнімділікке әсер ете ме?
Айырмашылық өнімділікке әсер ете ме?

Бейне: Айырмашылық өнімділікке әсер ете ме?

Бейне: Айырмашылық өнімділікке әсер ете ме?
Бейне: Осы дәрі-дәрмектерден кейін Орхидея тамыры 100% өседі / / Орхидея тамыры үшін ең жақсы жоғарғы 2024, Қараша
Anonim

Иә, DISTINCT функциясын пайдалану (кейде түсініктеме бойынша) нәтижелерге тапсырыс беруге себеп болады Жүздеген жазбаларды сұрыптау уақытты алады. Барлық бағандарыңыз бойынша GROUP BY параметрін қолданып көріңіз, бұл кейде сұрауды оңтайландырушыны тиімдірек алгоритм таңдауға әкелуі мүмкін (кем дегенде Oracle көмегімен өнімділіктің айтарлықтай артқанын байқадым).

Айқын пайдалану жаман ма?

Ал, "айырықша" сөзін дұрыс қолданбау жоғарыда талқыланғандай нақты мәселені жасырып қана қоймайды (кестелердегі қайталанатын жазбалар, on тармағында шарттың болмауы), сонымен қатар сұрау өнімділігін төмендетеді… Бұл сұраудың IO құнын (логикалық оқулар) айтарлықтай арттырады.

Айырмау сұрауды баяулатады ма?

ТАҢДАУ DISTINCT режимінде өте аз сұраулар жылдамырақ орындалуы мүмкін, ал өте азырақ SELECT DISTINCT режимінде баяу орындалады (бірақ айтарлықтай баяу емес), бірақ кейінгі жағдайда бұл мүмкін болуы мүмкін қолданбаға өнімділік пен күрделілік жүктемесін қолданбаға ауыстыратын қайталанатын істерді тексеру қажет болуы мүмкін.

Айқын немесе GROUP BY қолданған дұрыс па?

Егер Өріс индекстелмеген болса, MySQL-те DISTINCT функциясы GROUP BY қарағанда сәл жылдамырақ көрінеді. DISTINCT тек қайталанатын жолдарды жояды, бірақ GROUP BY оларды қосымша сұрыптайтын сияқты.

Неге SQL-де бөлек қолданбауымыз керек?

Егер ақауды «түзету» үшін «айырықша» опциясын таңдасаңыз, оның орнына нашар өнімділік алуыңыз мүмкін. GROUP BY AVG, MAX, MIN, SUM және COUNT сияқты жиынтық функцияларды пайдалануға мүмкіндік береді. DISTINCT тек көшірмелерді жояды.

Ұсынылған: