加载中...
组提交是一种将多个并发事务的日志刷盘操作合并为一次磁盘写入的优化技术。通过把短时间内的多笔提交攒成一批统一刷盘,大幅减少磁盘同步次数,显著提升高并发下的事务吞吐量。

| 类型 | 事务提交优化 |
| 核心思想 | 合并多事务日志刷盘 |
| 优化目标 | 减少 fsync 次数 |
| 典型收益 | 提升高并发写吞吐 |
组提交(Group Commit)是数据库在处理并发事务提交时,将多个事务的日志刷盘请求合并为一次磁盘写入的优化手段。由于将日志强制刷到磁盘(fsync)是提交路径上最昂贵的操作之一,把多笔提交合并成一批可以摊薄单次刷盘成本。
在没有组提交时,每个事务提交都要独立触发一次日志刷盘,高并发下会产生大量小而频繁的磁盘同步,成为吞吐瓶颈。组提交让先到达的事务稍作等待,收集同一时间窗口内其他就绪事务的日志,一次性写入并同步磁盘,再统一唤醒这些事务返回成功。
组提交在 OLTP 高并发写入场景收益最大,如电商下单、支付流水等每秒大量小事务的系统。它也是保证二进制日志与存储引擎日志顺序一致的重要机制,对基于日志的复制正确性至关重要。
问:组提交会增加单个事务的延迟吗?答:单笔事务可能因等待攒批而略增延迟,但整体吞吐大幅提升,在高并发下平均延迟反而下降,属于以微小等待换取整体效率的权衡。
问:低并发时组提交还有用吗?答:并发很低时可攒合的事务少,收益有限,但等待窗口通常很短,不会造成明显负面影响。

| 类型 | 事务提交优化 |
| 核心思想 | 合并多事务日志刷盘 |
| 优化目标 | 减少 fsync 次数 |
| 典型收益 | 提升高并发写吞吐 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧