Эффективный синтаксис SQL

Для включения таблицы в запрос используйте 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.