реклама
разместить

Как оптимизировать запросы в SQL?

В этой статье хочу рассказать о некоторых приемах, позволяющих значительно ускорить работу с SQL операторами. (Источник: личный опыт)

Вот некоторые из них:

1. Используйте конкретные имена столбцов после оператора select, вместо «*» – это позволит увеличить быстроту отработки запроса и уменьшению сетевого трафика.

2. Сведите к минимуму использование подзапросов.

Например, запрос

Select Column_A From Table_1 Where Column_B = (Select max (Column_B From Table_2) And Column_C = (Select max (Column_C From Table_2) And Column_D = ‘position_2’

выглядит значительно хуже на фоне аналогичного запроса:

Select Column_A From Table_1 Where (Column_B, Column_C) = (Select max (Column_B), max (Column_C) From Table_2)

3. Используйте оператор IN аккуратно, поскольку на практике он имеет низкую производительность и может быть эффективен только при использовании критериев фильтрации в подзапросе.

4. Соединение таблиц в запросе также является критичным: в случае, когда соединение таблиц происходит в правильном порядке, то общее число строк, необходимых к обработке, значительно сократится.

При соединении основной и уточняющей таблиц убедитесь, что первой будет основная таблица, в противном случае вы рискуете получить обработку гораздо большего числа строк, чем необходимо.

5. При соединении таблиц EXIST предпочтительнее distinct (таблицы отношения «один-ко-многим»).

6. Избыточность при работе с SQL – это критичная необходимость, используйте в разделе WHERE как можно больше ограничивающих условий.

Например, если указан

WHERE Column_А=Column_В and Column_А=425

вы сможете вывести результат, где Column_В=425, однако при задании условий

WHERE Column_А=Column_В and Column_B=Column_C

оператор не сможет определить, что Column_A=Column_C.

7. Пишите простые запросы. Больше упрощайте. Оптимизатор может не справиться со слишком сложными операторами. Кроме того, иногда выполнение нескольких простых до невозможности операторов дает лучший результат по сравнению со сложными и позволяет добиться лучшей эффективности.

8. Помните, что одного и того же результата можно добиться разными способами. Например, оператор MINUS выполняется гораздо быстрее, чем запросы с оператором WHERE NOT EXIST. Запрос с данным оператором в самом общем виде выглядит следующим образом:

Select worker_id From workers MINUS Select worker_id From orders

Этот пример показывает все значения worker_id, которые содержаться в таблице workers, не в таблице orders. Другими словами, если бы значение worker_id одновременно присутствовало в таблицах workers и orders, то значение worker_id не вывелось в результат, поскольку нет конкретики, содержание какой именно таблицы вывести как результат отработки запроса.

9. Оформляйте повторяющиеся коды в пользовательскую процедуру. Это может значительно ускорить работу, уменьшить сетевой трафик.

Таким образом, рассмотренные нами моменты работы с SQL операторами и запросами значительно ускоряют работу с СУБД.

В заключение хочется отметить, что очень важно при работе с SQL – мыслить шире, чем границы поставленной перед вами задачи

Всегда старайтесь оптимизировать запрос, какой бы не была мощной инфраструктура, даже ее производительность может снизиться при выполнении неоптимизированных запросов. Учитывайте все необходимые условия при работе с операторами таким образом, чтобы нагрузка на базу была минимальной.

33
реклама
разместить
Начать дискуссию
Не сокращения, а «оптимизация»: «Сбер» начал увольнять айтишников «Купера», «Мегамаркета», «Сберлогистики» и «Самоката» — СМИ

Сотрудникам предлагают уйти по соглашению сторон, утверждают источники.

Источник фото: «Ъ»
5757
1818
99
55
33
33
11
"СЕО сравнила людей, которых сокращают, с валенками, которые стоят в углу сарая — их жалко выбросить, но пользы от них нет" Какой удачный аллегорический приём. Не зря свой хлеб ест эта СЕО.
реклама
разместить
Ozon отменит сервисный сбор для всех ПВЗ

Компания ввела его в апреле 2024 года.

1414
33
11
Озон сила! ВБ могила.
Владелец TikTok вложит более $12 млрд в ИИ-инфраструктуру в 2025 году — FT

Часть денег потратят на закупки чипов в Китае, говорят источники газеты.

1111
11
Сооснователь Ethereum: семья Трампов запустит «крупный бизнес» на Ethereum

По данным Джо Любина, проектов может быть «несколько».

Источник фото: Coindesk
77
44
11
11
Meta* запланировала выпустить AR-очки Artemis, наушники с камерами, «умные» часы и очки для спортсменов — Bloomberg

Очки дополненной реальности могут выйти в 2027 году, предполагают источники агентства в компании.

Спортивные очки Sphaera. Источник: Oakley
22
11
11
Релокация — как переезд влияет на карьеру в короткой и дальней перспективе

• Какие ставки и риски?
• Почему многие хотят, но не едут?
• Какие сценарии помогают в достижении мечты?
В этой статье я постарался интересно и вдумчиво разобраться в теме влияния релокации на карьеру

Кадр из фильма <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fwww.kinopoisk.ru%2Ffilm%2F2697%2F&postId=1768601" rel="nofollow noreferrer noopener" target="_blank">«Красная жара»</a>
1919
22
11
11
Kling AI добавила бесплатную функцию Elements для создания ролика из изображений персонажа, одежды и локации

Пользователи примеряют образы на моделей и генерируют небольшие фильмы.

1616
1111
55
11
Роскомнадзор обязал Viber хранить данные о пользователях и делиться ими с властями

Хотя в декабре 2024 года заявил о блокировке мессенджера.

Источник: newsbytes.ph 
2727
11
11
11
11
Товарищ! Перед своим расстрелом не забудь заплатить налоги!
[]