MySQL 中的在线架构迁移:什么时候开始?

Joh*_* N. 5 mysql alter-table mysql-5.5 ddl percona-server

我是社交媒体 SAAS 的技术负责人,目前我们正在体验存储在 mySQL 数据库中的数据量大幅增加。

我们只有一个MySQL数据库,除了许多非常小的表外,我们还有两个大约500k-1.5m行的表。

目前,在执行 DDL 查询(向这些表添加新列)时,我们必须处理相当长的执行时间(around 4-5 mins)

我开始搜索在线模式迁移技巧,发现以下内容:

尽管这些策略值得研究,但我开始感到不舒服:我不认为,行数如此之少的表必须使用如此高级的方法。(那么真正巨大的桌子呢?)

所以我想知道,你们中是否有人有关于 mysql.cnf 本身的提示,或者 ddl 查询的其他性能提示?

Up_*_*One 4

我认为 Percona 的 pt-online-schema-change 对您来说可能是更好的解决方案,因为它可以在很少的停机时间内进行更改。然而,它确实需要向表中添加一个触发器。

在表上运行 DDL 将导致您重建表,mysql 是基于行的引擎,因此您将遭受索引重建的痛苦,这可能非常昂贵,具体取决于您的引擎,表的复杂性也是一个因素。