Для включения таблицы в запрос используйте
JOIN
(в выражении
FROM
) вместо вложенного запроса в выражении
WHERE
. Этот способ работает эффективно даже тогда, когда необходимо получить из таблицы данные только для фильтрации, а не для создания набора результатов.
Объединение таблиц в выражении
FROM
выполняется быстрее, чем при использовании вложенного запроса в выражении
WHERE
.
Избегайте использования инструкций SQL, которые неэффективно используют индексы. Эти инструкции включают использование функций агрегирования в подзапросе, инструкцию
UNION
в подзапросе или выражение
ORDER BY
с инструкцией
UNION
.
Использование индекса может существенно повысить скорость обработки запроса
SELECT
. Однако некоторые вида синтаксиса SQL не позволяют базе данных использовать индексы, заставляя ее использовать в операциях поиска и сортировки фактические данные.
Попробуйте исключить оператор
LIKE
, особенно если в начале использован подстановочный символ, например
LIKE('%XXXX%')
.
Так как оператор
LIKE
поддерживает поиск с использованием подстановочных символов, операция выполняется медленнее, чем при использовании явных имен. В частности, если вы начали искать строку с использованием подстановочного символа, использование индексов в базе данных во время поиска будет невозможно. В базе данных должен выполняться поиск во всем тексте каждой строки таблицы.
Постарайтесь не использовать оператор
IN
. Если возможные значения известны заранее, можно ускорить выполнение операции, заменив оператор
IN
оператором
AND
или
OR
.
Вторая из следующих двух инструкций выполняется быстрее. Она выполняется быстрее из-за использования простых выражений проверки равенства, объединенных с оператором
OR
, а не инструкций
IN()
или
NOT IN()
:
-- Slower
SELECT lastName, firstName, salary
FROM main.employees
WHERE salary IN (2000, 2500)
-- Faster
SELECT lastName, firstName, salary
FROM main.employees
WHERE salary = 2000
OR salary = 2500
Для повышения производительности попробуйте использовать альтернативные формы выражения SQL.
Из примеров выше видно, что форма инструкции SQL также может влиять на производительность базы данных. Существует несколько способов написания инструкции SQL
SELECT
для извлечения определенного набора результатов. В некоторых случаях выбор правильного подхода позволяет значительно ускорить выполнение операции. Узнать о других способах повышения производительности базы данных можно из дополнительных ресурсов по языку SQL.
|
|
|