TiDB 执行 DDL 修改大表字段,业务查询大面积阻塞故障

线上 TiDB 集群一张千万级订单表,运维人员在线执行 ALTER TABLE 修改字段长度,任务执行期间,该表所有查询、更新请求响应时间急剧升高,大量业务请求超时,其他无关数据表访问正常,集群 CPU、磁盘 IO 资源充足。

1 个赞

空间回收基于MVCC GC策略,GC worker定期清理过期版本。

大表 DDL 务必挪至业务低峰期执行;

应该是修改字段导致该表的MVCC版本过高,导致该表查询超时。
只在地缝期间做大表的DDL。

大表DDL 产生大量 MVCC 数据版本,拖慢查询读取,需要在低峰期执行。

TiDB 在线 DDL 同步重写全量数据,大表迁移 Region 抢占读写锁与 IO 带宽,单表请求排队阻塞;扩容字段属于重写类 DDL,无原生在线无锁方案。