Настройка SQL или оптимизация SQL

{title}

{title}


Некоторые запросы потребляют больше ресурсов, чем другие. Например, запросы, которые возвращают большие наборы результатов и те, которые содержат предложения WHERE, которые не являются уникальными, всегда потребляют много ресурсов. Никакой уровень интеллекта в базах данных sql не помогает оптимизировать запросы, и при этом они не могут исключить стоимость ресурсов из этих конструкций по сравнению с менее сложным запросом.
Мы можем получить одинаковые результаты, написав разные SQL-запросы. Но использование лучшего запроса важно при рассмотрении производительности. Настройка SQL - это процесс, гарантирующий, что операторы SQL, сгенерированные приложением, будут выполнены в кратчайшие сроки. Эти запросы SQL могут быть оптимизированы для повышения производительности.
Методы оптимизации или настройка SQL
Далее мы увидим некоторые методы оптимизации
СЛУЧАЙ 1: SQL-запрос становится быстрее, если вы используете имена полей, а не * как запрос всех полей в таблице
 ВЫБРАТЬ * ОТ клиентов 

Так лучше написать запрос
 ВЫБЕРИТЕ идентификатор, имя, адрес ОТ клиентов 

СЛУЧАЙ 2: Предложение HAVING используется для фильтрации строк после того, как все строки выбраны.
 ВЫБЕРИТЕ предмет, посчитайте (студенты) номер студента ОТ ВТОРОГО предмета ГДЕ предмет = 'Химия' И предмет = 'История' Предмет GROUP BY; 

Так лучше написать запрос
 SELECTmateria, count (студентов) student_number ОТ зарегистрированного GROUP BY предмет ОБЛАДАЕТ предмет = 'Химия' И предмет = 'История' 

СЛУЧАЙ 3: Иногда в основном запросе может быть несколько подзапросов. Давайте посмотрим в следующем примере, как минимизировать блок подзапроса в вашем запросе.
Мы консультируем старейшего и самого высокооплачиваемого сотрудника.
 ВЫБЕРИТЕ имя ОТ сотрудников, ГДЕ зарплата = (ВЫБЕРИТЕ МАКС (зарплата) ОТ сотрудников) И ВОЗРАСТ = (ВЫБЕРИТЕ МАКС (возраст) ОТ сотрудников) И пункт = 'Электроника'; 

Более оптимальным будет написать способ запроса на подписку
 ВЫБЕРИТЕ имя ОТ сотрудников ГДЕ (зарплата, возраст) = (ВЫБЕРИТЕ МАКС (зарплата), МАКС (возраст) ОТ сотрудников) И пункт = 'Электроника'; 

СЛУЧАЙ 4: Правильное использование в запросе операторов EXISTS, IN и табличных объединений важно, поскольку они являются транзакциями, которые замедляют доступ к данным.
Как правило, самая низкая производительность в запросе Canda.
IN эффективен, когда большинство критериев фильтра находятся в подзапросе.
Exist эффективен, когда большинство критериев фильтра находятся в основном запросе.
Давайте посмотрим несколько примеров
 Выберите * из продукта p, где product_id IN (выберите product_id из заказов) 

Лучше написать это следующим образом
 Выберите * из продукта, где EXISTS (выберите * из заказов, где orders.product_id = product.product_id) 

Используйте существует вместо DISTINCT
Пример увидеть, какие категории имеют книги в наличии
 ВЫБЕРИТЕ DISTINCT Categories.id, category.categories ОТ категорий, книги, ГДЕ Categories.id = books.idcategory; 

Оптимально написать запрос следующим образом
 ВЫБЕРИТЕ DISTINCT Categories.id, category.categories ОТ категорий, ГДЕ ЕСТЬ (ВЫБЕРИТЕ 'X' ИЗ книг, ГДЕ books.idcategory = Categories.id); 

Это несколько советов, которые позволят вам сэкономить ресурсы при выполнении SQL-запросов и, таким образом, иметь приложение с более быстрыми ответами.

  • 0