Изучаем sql



Pdf көрінісі
бет46/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   42   43   44   45   46   47   48   49   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

Механика запроса
Прежде чем анализировать выражение 
select
, любопытно узнать, как
сервер MySQL (или, коли на то пошло, любой сервер БД) выполняет за
просы. Если вы используете клиентскую программу командной строки
mysql
(что я предполагаю), то уже зарегистрировались на сервере
MySQL, предоставив свои имя пользователя и пароль (и, возможно,
имя хоста, если сервер MySQL выполняется на другом компьютере).
Как только сервер проверил правильность имени пользователя
и пароля, для вас создается соединение с БД. Это соединение удержива
ется запросившим его приложением (которым в данном случае являет
ся инструмент 
mysql
) до тех пор, пока приложение не высвободит соеди
нение (например, в результате введения команды 
quit
) или пока соеди
нение не будет закрыто сервером (например, при выключении сервера).
Каждому соединению с сервером MySQL присваивается идентифика
тор (ID), предоставляемый пользователю сразу после регистрации:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
to server version: 4.1.11nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
В данном случае ID соединения – 
2
. Эта информация может быть по
лезной администратору БД в случае какихлибо неполадок. Напри
мер, если требуется прервать плохо сформированный запрос, выпол
няющийся часами.
После того как сервер открыл соединение, проверив достоверность
имени пользователя и пароля, можно выполнять запросы (и другие


52
Глава 3. Азбука запросов
SQLвыражения). При каждом запросе перед выполнением выраже
ния сервер проверяет следующее:

Есть ли у вас разрешение на выполнение выражения?

Есть ли у вас разрешение на доступ к необходимым данным?

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

результирующий набор
(
result set
). Как было упомянуто в главе 1, результирующий набор –
это просто еще одна таблица со строками и столбцами. Если по запросу
не удается найти никаких данных, инструмент 
mysql
отобразит сооб
щение, приведенное в конце следующего примера:


Достарыңызбен бөлісу:
1   ...   42   43   44   45   46   47   48   49   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет