52
Глава 3. Азбука запросов
SQLвыражения). При каждом запросе перед выполнением выраже
ния сервер проверяет следующее:
•
Есть ли у вас разрешение на выполнение выражения?
•
Есть ли у вас разрешение на доступ к необходимым данным?
•
Правилен ли синтаксис выражения?
Если выражение
проходит все три теста, оно передается
оптимизато
ру запросов
, работа которого заключается в определении наиболее эф
фективного способа выполнения запроса. Оптимизатор рассмотрит по
рядок соединения таблиц,
перечисленных в запросе, и доступные ин
дексы, а затем определит
план выполнения
, используемый сервером
при выполнении этого запроса.
Многие из вас заинтересуются тем,
как понять и воздействовать
на выбор сервером БД плана выполнения. Читатели, использую
щие MySQL, могут посмотреть книгу «High Performance MySQL»
(O’Reilly). Кроме прочего, вы научитесь генерировать индексы,
анализировать планы выполнения,
оказывать влияние на опти
мизатор посредством подсказок запроса и настраивать парамет
ры запуска сервера. Для пользователей Oracle Database или SQL
Server есть десятки книг по этой тематике.
По завершении выполнения запроса сервер возвращает в вызывающее
приложение (опять же в инструмент
mysql
)
результирующий набор
(
result set
). Как было упомянуто в главе 1, результирующий набор –
это просто еще одна таблица со строками и столбцами. Если по запросу
не
удается найти никаких данных, инструмент
mysql
отобразит сооб
щение, приведенное в конце следующего примера:
Достарыңызбен бөлісу: