Spec-Zone .ru
спецификации, руководства, описания, API

14.9.1. FEDERATED Краткий обзор Механизма хранения

Когда Вы составляете таблицу, используя один из стандартных механизмов хранения (такой как MyISAM, CSV или InnoDB), таблица состоит из табличного определения и связанных данных. Когда Вы создаете a FEDERATED таблица, табличное определение является тем же самым, но физическое хранение данных обрабатывается на удаленном сервере.

A FEDERATED таблица состоит из двух элементов:

Выполняя запросы и операторы на a FEDERATED таблица на локальном сервере, операции, которые обычно вставляли бы, обновляет или удаляет информацию из локального файла данных, вместо этого отправляются удаленному серверу для выполнения, где они обновляют файл данных на удаленном сервере или строках соответствия возврата от удаленного сервера.

Базовая структура a FEDERATED табличную установку показывают в рисунке 14.1,"FEDERATED Структура таблицы".

Рисунок 14.1. FEDERATED Структура таблицы

ОБЪЕДИНЕННАЯ В ФЕДЕРАЦИЮ структура таблицы

Когда клиент выпускает SQL-оператор, который обращается к a FEDERATED таблица, поток информации между локальным сервером (где SQL-оператор выполняется) и удаленный сервер (где данные физически хранятся) следующие:

  1. Механизм хранения просматривает каждый столбец что FEDERATED таблица имеет и создает соответствующий SQL-оператор, который ссылается на удаленную таблицу.

  2. Оператор отправляется удаленному серверу, используя клиентский API MySQL.

  3. Удаленный сервер обрабатывает оператор, и локальный сервер получает любой результат, к которому оператор приводит (количество влиявших строк или набор результатов).

  4. Если оператор производит набор результатов, каждый столбец преобразовывается в формат механизма внутренней памяти что FEDERATED механизм ожидает и может использовать, чтобы вывести на экран результат клиенту, который сделал исходное заявление.

Локальный сервер связывается с API-функциями клиента MySQL использования удаленного сервера К. Это вызывает mysql_real_query() отправить оператор. Чтобы считать набор результатов, это использует mysql_store_result() и строки выборок, по одному используя mysql_fetch_row().