1、RDS MySQL 内核 AliSQL 的演进-Advanced MySQL陈宗志(暴跳)目录AliSQL 在云存储上的适配和优化AliSQL 在 DDL 场景的优化AliSQL 在 Binlog 模块的优化AliSQL 和 DuckDB 在 HTAP 场景的解决方案目录AliSQL 在云存储上的适配和优化AliSQL 在 DDL 场景的优化AliSQL 在 Binlog 模块的优化AliSQL 和 DuckDB 在 HTAP 场景的解决方案数据库存算分离的问题存算分离架构的痛点(线上经验&系统实验):采用云存储后出现慢SQL;I/O时延大、聚合带宽高;数据库网络带宽利用率低;刷脏时WAL写性
2、能入下降;数据库存算分离的挑战数据库存算分离的优化MySQL(ESSD)MySQL(Local)AliSQL(ESSD)Total Performance evaluation of MySQLPerformance BreakdownWAL acceleration breakdown目录AliSQL 在云存储上的适配和优化AliSQL 在 DDL 场景的优化AliSQL 在 Binlog 模块的优化AliSQL 和 DuckDB 在 HTAP 场景的解决方案DDL 发展过程DDL 是 MySQL 最高频的“变更”操作问题:“锁表”、性能抖动、执行时间长 不敢“变更”Copy DDLInpl
3、ace DDLInstant DDL原表临时表copy row原表原 B+tree新 B+tree原表modify metaB+tree阶段1(Prepare)阶段2(Execute)阶段3(Cleanup)buildX(不可读写)NO_WRITE(只读)SU(读写)MySQL DDL 发展过程:5.6 之前,Copy DDL5.6&5.7,Inplace DDL8.0 之后,Instant DDLDDL 执行过程:阶段一,元数据准备阶段二,数据拷贝阶段三,清理&生效DDL 优化目标:更快、更稳、更安全更快:秒级修改列(Modify&Change)IO&排序优化并行构建 B+tree(主键+二
4、级索引)更稳:Buffer Pool 管理优化,快速刷脏大文件异步删除,减少文件系统抖动AHI 清理优化,消除 AHI 导致的全局阻塞更安全:非阻塞 DDL,优化 DDL 过程 MDL 锁获取过程,避免 DDL 导致的业务雪崩Lag Free DDL,降低 DDL 导致的复制延迟性能对比01000200030004000500060001112131415161718191 101 111 121 131 141 151 161 171 181 191oltp_read_write+DDLDefaultFast DDLDDL 优化秒级修改列核心思路:元数据多版本Instant Drop+Ins
5、tant Add支持语法:ALTER TABLE?MODIFY COLUMN?,ALGORITHM=INSTANT;ALTER TABLE?CAHENG COLUMN?,ALGORITHM=INSTANT;mysql select*from t0;+-+-+-+|id|c1|c2|+-+-+-+|1|10|2025-05-19 13:52:09|+-+-+-+1 row in set(0.00 sec)mysql show create table t0G*1.row*Table:t0Create Table:CREATE TABLE t0(id int NOT NULL AUTO_INCRE
6、MENT,c1 int DEFAULT NULL,c2 datetime DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY(id)ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set(0.00 sec)mysql insert into t0(c1)values(2147483720);ERROR 1264(22003):Out of range value for column c1 at row 1mysql alter table