15.8.1 Обзор хранилища FEDERATED
При создании таблицы с использованием одного из стандартных хранилищ (например, MyISAM, CSV или InnoDB), таблица состоит из определения таблицы и связанных данных. При создании таблицы FEDERATED определение таблицы остается таким же, но физическое хранение данных обрабатывается на удаленном сервере.
Таблица FEDERATED состоит из двух элементов:
Удаленный сервер с таблицей базы данных, которая, в свою очередь, состоит из определения таблицы (хранится в файле
.frm) и связанной таблицы. Тип таблицы удалённой таблицы может быть любого типа, поддерживаемого удаленным серверомmysqld, включаяMyISAMилиInnoDB.Локальный сервер с таблицей базы данных, где определение таблицы соответствует определению соответствующей таблицы на удалённом сервере. Определение таблицы хранится в файле
.frm. Однако файла данных на локальном сервере нет. Вместо этого определение таблицы включает строку подключения, которая указывает на удаленную таблицу.
При выполнении запросов и инструкций на таблице FEDERATED на локальном сервере операции, которые обычно вставляют, обновляют или удаляют информацию из локального файла данных, вместо этого отправляются на удаленный сервер для выполнения, где они обновляют файл данных на удаленном сервере или возвращают соответствующие строки с удаленного сервера.
Базовая структура настройки таблицы FEDERATED показана на рисунке 15.2, «Структура таблицы FEDERATED».
Рисунок 15.2 Структура таблицы FEDERATED
Когда клиент отправляет инструкцию SQL, которая относится к таблице FEDERATED, поток информации между локальным сервером (где выполняется инструкция SQL) и удаленным сервером (где физически хранятся данные) выглядит следующим образом:
Хранилище просматривает каждый столбец, который имеет таблица
FEDERATED, и строит соответствующую инструкцию SQL, которая относится к удаленной таблице.Инструкция отправляется на удаленный сервер с использованием API клиента MySQL.
Удаленный сервер обрабатывает инструкцию, а локальный сервер получает любой результат, который производит инструкция (число затронутых строк или набор результатов).
Если инструкция производит набор результатов, каждый столбец преобразуется в формат внутреннего хранилища, который ожидает движок
FEDERATEDи может использовать для отображения результата клиенту, который отправил исходную инструкцию.
Локальный сервер взаимодействует с удалённым сервером, используя функции API клиента MySQL. Он вызывает для отправки инструкции. Для чтения набора результатов он использует и извлекает строки по одной за раз, используя .
© 2025 Oracle
Licensed under the GPLv2 License.