в. Очень большая таблица, несколько столбцов которой используется в фильтрахключевого слова WHERE.
г. Большая таблица с множеством столбцов, предполагающая частые обновления данных.
17-й час Повышение эффективности работы с базой данных
В ходе этого урока вы узнаете о том, как с помощью простых приемов оптимизировать операторы SQL для достижения максимальной скорости работы с базой данных.
Основными на этом уроке будут следующие темы.
• Что означает оптимизация операторов SQL?
• Оптимизация базы данных и оптимизация операторов SQL
• Форматирование операторов SQL
• Правильное связывание таблиц
• Наиболее ограничительные условия
• Полное сканирование таблиц
• Необходимость использования индексов
• Как избежать использования OR и HAVING
• Как избежать долгих операций сортировки
Что означает оптимизация операторов SQL?
Оптимизация оператора SQL означает выбор такой формы оператора, при которой он работает максимально быстро и эффективно. Оптимизация оператора SQL начинается с выбора наилучшего порядка размещения элементов, из которых оператор состоит. Оказывается, что простое форматирование может играть значительную роль для оптимизации работы оператора.
Оптимизация оператора SQL состоит, главным образом, в выборе правильной формы выражений ключевых слов FROM и WHERE. Именно в зависимости от формы этих двух выражений сервер базы данных решает, как и в каком порядке следует выполнить запрос. К данному моменту вы уже ознакомились с основными принципами построения выражений ключевых слов FROM и WHERE. Теперь пришло время заняться изучением приемов оптимизации этих выражений для ускорения работы операторов в целом и, как следствие, максимального удовлетворения запросов пользователя.
Оптимизация базы данных и оптимизация операторов SQL
Прежде чем продолжить обсуждение проблем оптимизации операторов SQL, обратим внимание на разницу между оптимизацией базы данных и оптимизацией операторов SQL, с помощью которых осуществляется доступ к базе данных.
Оптимизация базы данных означает оптимальный выбор основных параметров базы данных с учетом имеющихся ресурсов памяти и жестких дисков, процессора, возможностей ввода/вывода, а также внутренних процессов самой базы данных. Оптимизация базы данных включает в себя также и выбор наилучшей (с точки зрения скорости работы) структуры самой базы данных, в частности, структуры ее таблиц и индексов. Имеются и другие аспекты оптимизации базы данных, но эти аспекты обычно относятся к компетенции администратора. Говоря в общем, целью оптимизации базы данных является такой выбор структуры и внутренних связей базы данных, при которых база данных будет работать быстрее всего при ожидаемой интенсивности и специфике ее использования
Оптимизация оператора SQL - это выбор такой формы оператора SQL, коюрая оказывается наилучшей с точки зрения скорости доступа к базе данных Это, главным образом, касается операторов осуществления запросов и операторов транзакций типа добавления, обновления и удаления данных. Целью оптимизации оператора SQL является ускорение доступа к базе данных в ее текущем виде, используя особенности структуры самой базы данных, системных ресурсов и индексов.
Для достижения оптимальной скорости работы с базой данных необходимо оптимизировать как саму базу данных, так и используемые для доступа к ней операторы SQL. Плохо оптимизированная база данных потребует очень много лишних усилий по оптимизации операторов SQL, и наоборот, хорошая оптимизация базы данных не поможет, если использовать операторы SQL, элементы которых идут в неправильном порядке.
Форматирование операторов SQL
Необходимость форматирования операторов SQL кажется вполне естественной, точно также вполне естественным кажется и упоминание о форматировании здесь. Есть несколько моментов, которые не очень опытные в использовании SQL программисты обычно склонны не принимать во внимание. В следующих разделах мы обсудим перечисленные ниже вопросы - некоторые из них вытекают из обычных соображений здравого смысла, но некоторые не так очевидны.
• Форматирование операторов SQL для лучшего восприятия
• Порядок перечисления таблиц в выражении ключевого слова FROM
• Размещение наиболее ограничительных условий в выражении ключевого слова WHERE
• Размещение условий связывания в выражении ключевого слова WHERE
Читать дальше