14.13 InnoDB и онлайн DDL
Функция онлайн DDL предоставляет поддержку изменения таблиц на месте и одновременных операций DML. Преимущества этой функции включают:
Повышенная отзывчивость и доступность в загруженных производственных средах, где временное или часовое недоступности таблицы неприемлемо.
Возможность регулировать баланс между производительностью и конкурентностью во время операций DDL с помощью предложения
LOCK. См. Оператор LOCK.Меньшее потребление дискового пространства и I/O-накладные расходы по сравнению с методом копирования таблицы.
Обычно для включения онлайн DDL ничего специального делать не нужно. По умолчанию MySQL выполняет операцию на месте, если это разрешено, с минимальным возможным блокированием.
Вы можете управлять аспектами операции DDL с помощью предложений ALGORITHM и LOCK оператора ALTER TABLE. Эти предложения размещаются в конце оператора, отделенные запятыми от спецификаций таблицы и столбцов. Например:
ALTER TABLE tbl_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE;
Предложение LOCK полезно для точной настройки степени одновременного доступа к таблице. Предложение ALGORITHM предназначено в основном для сравнения производительности и как резервного варианта для устаревшего поведения копирования таблицы, если у вас возникнут какие-либо проблемы. Например:
Чтобы случайно не сделать таблицу недоступной для чтения, записи или того и другого, укажите предложение оператора
ALTER TABLE, напримерLOCK=NONE(разрешить чтение и запись) илиLOCK=SHARED(разрешить чтение). Операция немедленно прерывается, если требуемый уровень конкурентности недоступен.Для сравнения производительности между алгоритмами выполните оператор с
ALGORITHM=INPLACEиALGORITHM=COPY. В качестве альтернативы, выполните оператор с отключённой и включённой опцией конфигурацииold_alter_table.Чтобы избежать блокировки сервера операцией
ALTER TABLE, которая копирует таблицу, включитеALGORITHM=INPLACE. Оператор немедленно прерывается, если он не может использовать механизм на месте.
© 2025 Oracle
Licensed under the GPLv2 License.