InnoDB Online DDL特性
其是在MySQL 5.6版本引入, 建立在5.5版本Fast Index Creation特性上的. 数据表变更时, 允许操作原地进行, 而不用拷贝数据,或并发DML语句继续访问. 由此带来了数据库可用性和性能的提升.
就Online DDL提供的原地操作, 并发访问等特性, 看下实际工作中常见的16个场景
Online DDL使用可能遇到的报错
1. Online DDL内部运行时, 可能开始和结束需要获取排它锁, 其会由于正在运行的长事物而超时.
2. 数据表变更过程中,DML语句产生的日志会临时存放在参数innodb_online_alter_log_max_size指定的内存中, 可能会由于该空间较小报错DB_ONLINE_LOG_TOO_BIG, 建议负载较大的系统该参数设置为512MB或1GB.
Online DDL的局限性
若某个Online DDL操作运行时间较长, 可能会造成数据库主从复制环境的延时,影响读业务.
那么, 对于复制环境下, 较大的数据表如何进行变更呢, 稍后进行说明.
若感兴趣可关注订阅号”数据库最佳实践”(DBBestPractice).