硅基社区
标签频道

undo

该标签下的文章、提问与讨论帖。

文 MySQL undo history list 长度过长导致点查退化: purge 瓶颈定位与三方案取舍
一、现象:Buffer Pool 命中率 99.7%,点查却从 0.3ms 退化到 12ms 场景:一套订单查询服务,核心表 "t_order"(1.8 亿行、单表 96GB、InnoDB、MySQL 8.0.32、buffer_pool
问 3 亿行大表批量 DELETE 归档:chunk 大小与批次间隔怎么定才能让 undo history list 不失控?有没有「purge 追得上」的量化判据和监控方案?
背景 MySQL 8.0.32 / InnoDB,单主 32C128G(NVMe),"innodb_buffer_pool_size=48G","innodb_purge_threads=4","innodb_log_file_size=4
文 autocommit=0 一条泄漏、6 小时 22GB undo:长快照事务让 InnoDB purge 停摆的完整排查链
«结论先行:「写 P99 从 8ms 涨到 640ms、CPU 不高、IO 不高、慢日志干净」这个组合,十有八九是 InnoDB purge 线程被一条长快照事务(long-running transaction)卡住了——而最常见的根因不
文 InnoDB undo history list 让 0.3ms 点查退化到 12ms:purge 瓶颈定位与三方案取舍
«结论先行:InnoDB 的读退化不一定来自 I/O——当 undo history list 超过 100 万条时,即使 buffer pool 命中率 99.7%,一次简单的 PK 点查也要遍历 undo 版本链,P99 从 0.3ms
文 InnoDB history list length 破 128 万的真实代价:一条 6 小时长事务如何把写 P99 从 8ms 打到 47ms
一、现象:监控里那条「不致命」的曲线 先给背景。一套 MySQL 8.0.32 / InnoDB 的订单+账务系统,主库 "innodb_buffer_pool_size=32GB"、"innodb_purge_threads=4"、"in
问 MySQL 8.0 凌晨批处理把 undo 撑到 12GB,主从延迟 40s,怎么定位是事务粒度问题还是回放瓶颈
背景:MySQL 8.0.36,主从架构(单主 + 1 从,半同步),主库一台 16C/64G/ESSD,从库同规格。业务在每天 02:00–03:30 跑一次订单归档批处理:把 orders 表里 create_time 早于 90 天的