Spec-Zone .ru
спецификации, руководства, описания, API
|
Следует знать о следующих моментах при использовании FEDERATED
механизм хранения:
FEDERATED
таблицы могут быть тиражированы в другие
ведомые устройства, но следует гарантировать, что ведомые серверы в состоянии использовать комбинацию
пользователя/пароля, которая определяется в CONNECTION
строка (или строка в
mysql.servers
таблица), чтобы соединиться с удаленным сервером.
Следующие элементы указывают на функции что FEDERATED
механизм хранения делает и не
поддерживает:
Удаленный сервер должен быть сервером MySQL.
Удаленная таблица это a FEDERATED
таблица указывает на, должен существовать прежде, чем Вы попытаетесь получить доступ к
таблице через FEDERATED
таблица.
Это возможно для одного FEDERATED
таблица, чтобы
указать другому, но следует бояться создавать цикл.
A FEDERATED
таблица не поддерживает, индексирует по
существу. Поскольку доступ к таблице обрабатывается удаленно, это - удаленная таблица, которая
поддерживает индексирование. Забота должна быть проявлена, создавая a FEDERATED
таблица начиная с индексировать определения от эквивалента
MyISAM
или другая таблица не может поддерживаться. Например, создание a
FEDERATED
таблица с индексировать префиксом на VARCHAR
, TEXT
или BLOB
столбцы перестанут работать. Следующее определение в MyISAM
допустимо:
CREATE TABLE `T1`(`A` VARCHAR(100),UNIQUE KEY(`A`(30))) ENGINE=MYISAM;
Ключевой префикс в этом примере является несовместимым с FEDERATED
механизм, и эквивалентный оператор перестанут работать:
CREATE TABLE `T1`(`A` VARCHAR(100),UNIQUE KEY(`A`(30))) ENGINE=FEDERATED CONNECTION='MYSQL://127.0.0.1:3306/TEST/T1';
Если возможный, следует попытаться разделить столбец и индексировать определение, составляя таблицы и на удаленном сервере и на локальном сервере, чтобы избежать, чтобы они индексировали проблемы.
Внутренне, использование реализации SELECT
, INSERT
, UPDATE
, и DELETE
, но нет HANDLER
.
FEDERATED
механизм хранения поддерживает SELECT
,
INSERT
, UPDATE
,
DELETE
, TRUNCATE TABLE
, и индексирует. Это не поддерживает ALTER TABLE
, или любые операторы Data Definition Language, которые
непосредственно влияют на структуру таблицы, кроме DROP TABLE
. Текущая реализация не использует подготовленные
операторы.
FEDERATED
принимает INSERT ... ON DUPLICATE KEY UPDATE
операторы, но если двойное ключевое
нарушение происходит, сбои оператора с ошибкой.
Производительность на a FEDERATED
таблица, выполняя
объем вставляет (например, на a INSERT
INTO ... SELECT ...
оператор), медленнее чем с другими табличными типами, потому что
каждая выбранная строка обрабатывается как человек INSERT
оператор на FEDERATED
таблица.
Транзакции не поддерживаются.
FEDERATED
выполняет вставляют объем обработку так, что,
многократные строки отправляются удаленной таблице в пакете. Это обеспечивает улучшение
производительности и позволяет удаленной таблице выполнить улучшение. Кроме того, если удаленная таблица
является транзакционной, она позволяет удаленному механизму хранения выполнить откат оператора, должным
образом должен ошибка происходить. У этой возможности есть следующие ограничения:
Размер вставки не может превысить максимальный пакетный размер между серверами. Если вставка превышает этот размер, она повреждается в многократные пакеты, и проблема отката может произойти.
Вставьте объем обработку, не происходит для INSERT ... ON DUPLICATE KEY UPDATE
.
Нет никакого пути к FEDERATED
механизм, чтобы знать,
изменилась ли удаленная таблица. Причина этого состоит в том, что эта таблица должна работать как файл
данных, который никогда не писался бы ничем кроме системы баз данных. Целостность данных в локальной
таблице могла быть нарушена, если бы было какое-либо изменение к удаленной базе данных.
При использовании a CONNECTION
строка, невозможно
использовать символ в пароле. Можно обойти это ограничение при использовании CREATE SERVER
оператор, чтобы создать соединение сервера.
insert_id
и timestamp
опции не распространяются провайдеру данных.
Любой DROP TABLE
оператор вышел против a FEDERATED
таблица отбрасывает только локальную
таблицу, не удаленную таблицу.
FEDERATED
таблицы не работают с кэшем запроса.
Определяемое пользователем разделение не поддерживается для FEDERATED
таблицы.