Spec-Zone .ru
спецификации, руководства, описания, API
|
Перед введением онлайнового DDL это
была обычная практика, чтобы объединить много операций DDL в сингл ALTER TABLE
оператор. Поскольку каждый ALTER TABLE
оператор включил копирование и восстановление таблицы, было более
эффективно произвести несколько изменений в той же самой таблице сразу, так как те изменения могли все быть
сделаны с синглом, восстанавливают работу для таблицы. Нижняя сторона была то, что код SQL, включающий операции
DDL, было более трудно поддержать и снова использовать в различных сценариях. Если определенные изменения
отличались каждый раз, когда Вам, возможно, придется создать новый комплекс ALTER TABLE
для каждого немного отличающегося сценария.
Для операций DDL, которые могут быть сделаны оперативные, как показано в Таблице
5.9, "Сводка Онлайнового Состояния для Операций DDL", теперь можно разделить их на человека ALTER
TABLE
операторы для более легких сценариев и обслуживания, не жертвуя эффективностью. Например, Вы
могли бы взять сложный оператор, такой как:
alter table t1 add index i1(c1), add unique index i2(c2), change c4_old_name c4_new_name integer unsigned;
и разломайте это на более простые части, которые могут быть протестированы и выполнены независимо, такие как:
alter table t1 add index i1(c1);alter table t1 add unique index i2(c2);alter table t1 change c4_old_name c4_new_name integer unsigned not null;
Вы могли бы все еще использовать многослойный ALTER
TABLE
операторы для:
Операции, которые должны быть выполнены в определенной последовательности, такой как создание индексирования сопровождаемого ограничением внешнего ключа, которое использует, которые индексируют.
Операции все использование определенного того же самого LOCK
пункт, за которым Вы хотите или следовать или привести к сбою как
группа.
Операции, которые не могут быть выполнены оперативные, то есть, это все еще, копируют и восстанавливают таблицу.
Операции, для которых Вы определяете ALGORITHM=COPY
или old_alter_table=1
, вызвать копирующее таблицу поведение если нужно для
точной прежней совместимости в специализированных сценариях.