The online DDL feature builds
on the InnoDB Fast Index Creation feature that is
available in MySQL 5.1 and MySQL 5.5. The
InnoDB Fast Index Creation feature optimized
CREATE INDEX and
DROP INDEX to
avoid table-copying behavior. The
online DDL feature,
introduced in MySQL 5.6, enhances many other types of
ALTER TABLE operations to avoid table
copying, blocking DML operations
while DDL is in progress, or both.
The online DDL feature has the following benefits:
It improves responsiveness and availability in busy production environments, where making a table unavailable for minutes or hours whenever you modify its indexes or column definitions is not practical.
It lets you adjust the balance between performance and
concurrency during the DDL operation, by choosing whether to
block access to the table entirely
LOCK=EXCLUSIVE clause), allow queries but
not DML (
LOCK=SHARED clause), or allow full
query and DML access to the table (
clause). When you omit the
LOCK clause or
LOCK=DEFAULT, MySQL allows as much
concurrency as possible depending on the type of operation.
Performing changes in-place where possible, rather than creating a new copy of the table, avoids temporary increases in disk space usage and I/O overhead associated with copying the table and reconstructing secondary indexes.
The MySQL Cluster
NDB storage engine
also supports online table schema changes, but uses its own syntax
that is not compatible with the syntax used for
InnoDB online operations. For more information,
see Section 22.214.171.124, “ALTER TABLE Online Operations in MySQL Cluster”.