Помимо первичных пяти подсистем, архитектура MySQL содержит два компонента поддержки:
■ диспетчер процессов;
■ библиотеки функций.
Диспетчер процессов
Этот компонент предназначен для выполнения в системе двух функций. Во-первых, он осуществляет соединение с пользователем посредством модулей управления сетевыми соединениями с клиентами. Во-вторых, он синхронизирует параллельные задачи посредством специальных модулей многопроцессной работы.
Библиотеки функций
Этот компонент содержит программы общего назначения, которые используются другими подсистемами. Библиотека включает программы манипуляции строками, выполнения операций сортировки и такими специфическими для ОС функциями, как управление памятью и операции ввода-вывода файлов.
Взаимодействие между подсистемами и компонентами и управление выполнением
Для обработки запроса пользователя процессор обработки запросов запрашивает записываемые или считываемые данные из диспетчера буферизации. Запрос на блокировку данных осуществляет диспетчер транзакций. Таким образом обеспечивается параллельность работы. Для выполнения операции создания и удаления таблицы процессор запросов осуществляет доступ к диспетчеру сохранения непосредственно, обходя диспетчер буферизации, необходимый для создания или удаления файлов из файловой системы. Диспетчер буферизации кэширует данные из диспетчера сохранения для эффективной выборки из процессора обработки запросов. На диспетчер транзакций возлагается обязанность по проверке статуса блокировки данных перед тем, как произвести любую операцию по изменению данных.
Соответственно, диспетчер транзакций, в зависимости от состояния кэш-памяти запросов и диспетчера сохранения, блокирует данные в памяти и все операции по модификации.
Диспетчер восстановления использует диспетчер сохранения для сохранения протоколов команд, событий и резервных копий данных в файловых системах. Он зависит от диспетчера транзакций с точки зрения выполнения операций по блокировке файлов протокола, в которые производится печать. Кроме того, диспетчеру восстановления при восстановлении после сбоев требуется диспетчер буферизации.
Диспетчер сохранения зависит от файловой системы операционной системы в плане сохранения данных и их выборки. Для обеспечения блокировки информации о статусе он взаимодействует с диспетчером транзакций.

Процессор MySQL
MySQL поддерживает работу как с небольшими приложениями, так и с хранилищами данных, рассчитанными на 5 млрд. записей. Такая гибкость встала возможной, прежде всего, благодаря процессору MySQL, который разрабатывался в расчете на максимальную гибкость, максимальную эффективность использования ресурсов и простоту переносимости на различные платформы. В этом разделе мы детально обсудим все важнейшие характеристики этого процессора.
Взаимодействие
Разработчики MySQL предусмотрели возможность работы его приложений с сетевым протоколом TCP/IP (Transmission Control Protocol/Internet Protocol). Это было весьма дальновидным решением, если принять во внимание то, что TCP/IP-сети отличаются не только своей надежностью и безопасностью, но и работают с ОС UNIX, Windows, OS/2 и практически со всеми другими серьезными операционными системами, перечислить которые здесь не представляется возможным. Когда клиент и сервер располагаются на одной и той же Unix-машине, MySQL использует TCP/IP-соединение через разъемы UNIX, работающие в домене UNIX, т.е. они используются при обмене данными между процессами, работающими в одной и той же системе UNIX (в противоположность разъемам Internet, которые работают между сетями).
Кроме того, MySQL позволяет создавать соединения через именованные каналы, раз­работанные в свое время для поддержки сетевых соединений в таких ранних сетях, не поддерживающих TCP/IP-соединения, как LAN Manager и Windows NetBEUI. (В NetBEUI используется схема адресации, основанная на NETBIOS-имени компьютера, а не IP-адресе.)
SQL
Структурированный язык запросов (Structured Query Language, SQL) является открытым стандартом, который разрабатывался начиная с 1986 года и поддерживался Национальным институтом стандартизации США (American National Standards Institute, ANSI). Несмотря на то, что реализация этого языка у различных разработчиков имеет свой диалект, можно сказать, что SQL сейчас является одним из наиболее широко используемых языков. Как и остальные другие диалекты языка, такие как T-SQL (Transact-SQL) SQL Server или SQL Oracle, в диалекте SQL, используемом в MySQL, реализуется свой собственный стандарт SQL, который добавляет возможности, не предусмотренные в стандарте SQL. Несмотря на то, что запросы SQL MySQL детально рассматриваются в последующих главах, для того, чтобы дать первоначальное понятие о возможностях MySQL по выборке данных и поддержке решений, в этом разделе будет вкратце рассказано о его использовании.
Что еще можно сказать о SQL? Он прост в восприятии. С помощью вот такого простого оператора можно сделать выборку данных.
Компоненты поддержки
Как видно, этот синтаксис достаточно прозрачный и понятный - действительно, он выглядит во многом подобно разговорному английскому языку (что просто превосходно для владеющих английским языком). Для того чтобы отсортировать полученный результат по цене, достаточно просто добавить в конец оператора фразу ORDER BY price и запустить его повторно.
По сравнению с языками С++, Java и Perl, на первый взгляд кажется, что SQL очень просто выучить. В действительности обучение языку SQL настолько же длительно, насколько длительно обучение другим языкам. Уже написано достаточно много книг по использованию SQL для выборки данных. Посмотрите на следующий запрос, который, вероятно, будет более наглядной демонстрацией сложности этого языка.
Это запрос по выборке автомобилей, средняя цена на которые возросла за последний год на 25 %.
Компоненты поддержки
Компоненты поддержки