InnoDB Online DDL特性

其是在MySQL 5.6版本引入, 建立在5.5版本Fast Index Creation特性上的. 数据表变更时, 允许操作原地进行, 而不用拷贝数据,或并发DML语句继续访问. 由此带来了数据库可用性和性能的提升.

 

就Online DDL提供的原地操作, 并发访问等特性, 看下实际工作中常见的16个场景

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性..

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._02

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._03

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._04

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._05

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._06

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._07

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._08

InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._09

 

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).InnoDB Online DDL一瞥_MySQL 5.6令人激动的一个特性.._10