一、 Online 介绍
MySQL5.6 引入了 online DDL, 在 MySQL5.6 中,支持更多的 alter table
类型操作来避免 copy dat a,同时支持了在线上 DDL 的过程中不阻塞 DML
操作,真正意义上的实现了 Online DDL。
https://dev.mysql.com/doc/refman/5.6/en/innodb-online-ddl.html
online DDL 在 5.7、8.0 版本会支持更好一点儿,早一点的版本支持比较弱。
常见的 online DDL 工具:主要有原生的 online DDL、 pt-osc
( pt-online-schema-change)、ghost 三种工具。
pt-osc 是 percona 工具集中的一个工具。应该是应用最广泛的之一,ghost
是用 go 语言实现的工具。
历史上看,MySQL 在 2007 年 就 完 成 了 在 线 索 引 接 口 的 设 计 。而 M ySQL NDB
Cluster、 TokuDB 都早在 5.1 版本中就支持在线索引添加,然而直到
MySQL 5.6 用户才能真正享受到该功能(虽然 facebook 团队有推出
OSC),这 也 导 致 在 MySQL5.6 出现之前(5.5 版本及之前版本),MySQL 数
据库长期被吐槽的原因之一(特别是 Oracle DBA)
1.1 Online DDL in MySQL5.5
MySQL5.5 版本及之前版本的 DDL 实现方式:
评论