Spec-Zone .ru
спецификации, руководства, описания, API
|
Когда Вы составляете таблицу, используя один из стандартных механизмов хранения (такой как MyISAM
, CSV
или InnoDB
),
таблица состоит из табличного определения и связанных данных. Когда Вы создаете a FEDERATED
таблица, табличное определение является тем же самым, но физическое хранение данных обрабатывается на удаленном
сервере.
A FEDERATED
таблица состоит из двух элементов:
Удаленный сервер с таблицей базы данных,
которая поочередно состоит из табличного определения (сохраненный в .frm
файл) и связанная таблица. Табличный тип удаленной таблицы может быть любым типом, поддерживаемым
удаленным mysqld
сервер, включая MyISAM
или
InnoDB
.
Локальный сервер с таблицей базы данных, где
табличные соответствия определения та из соответствующей таблицы на удаленном сервере. Табличное
определение сохранено в пределах .frm
файл. Однако, на локальном сервере
нет никакого файла данных. Вместо этого табличное определение включает строку подключения, которая
указывает на удаленную таблицу.
Выполняя запросы и операторы на a FEDERATED
таблица на локальном сервере, операции,
которые обычно вставляли бы, обновляет или удаляет информацию из локального файла данных, вместо этого
отправляются удаленному серверу для выполнения, где они обновляют файл данных на удаленном сервере или строках
соответствия возврата от удаленного сервера.
Базовая структура a FEDERATED
табличную установку показывают в рисунке
14.1,"FEDERATED
Структура таблицы".
Когда клиент выпускает SQL-оператор, который обращается к a FEDERATED
таблица,
поток информации между локальным сервером (где SQL-оператор выполняется) и удаленный сервер (где данные
физически хранятся) следующие:
Механизм хранения просматривает каждый столбец что FEDERATED
таблица имеет и создает соответствующий SQL-оператор, который
ссылается на удаленную таблицу.
Оператор отправляется удаленному серверу, используя клиентский API MySQL.
Удаленный сервер обрабатывает оператор, и локальный сервер получает любой результат, к которому оператор приводит (количество влиявших строк или набор результатов).
Если оператор производит набор результатов, каждый столбец преобразовывается в
формат механизма внутренней памяти что FEDERATED
механизм ожидает и может
использовать, чтобы вывести на экран результат клиенту, который сделал исходное заявление.
Локальный сервер связывается с API-функциями клиента MySQL использования удаленного сервера К. Это вызывает mysql_real_query()
отправить оператор. Чтобы считать набор результатов, это
использует mysql_store_result()
и
строки выборок, по одному используя mysql_fetch_row()
.