redo log 与 binlog 两阶段提交在解决什么问题
1 问题不在“写日志”,而在“两份日志必须一致” MySQL 中一次事务提交并不是只写一份日志。开启 binlog 且使用 InnoDB 时,至少有两类日志参与提交路径: redo log 属于 InnoDB,记录数据页的物理修改,服务于实例崩溃后的恢复。 binlog 属于 …
继续阅读分类
共 7 篇
1 问题不在“写日志”,而在“两份日志必须一致” MySQL 中一次事务提交并不是只写一份日志。开启 binlog 且使用 InnoDB 时,至少有两类日志参与提交路径: redo log 属于 InnoDB,记录数据页的物理修改,服务于实例崩溃后的恢复。 binlog 属于 …
继续阅读针对 MySQL 的 InnoDB 存储引擎执行以下典型乐观锁更新语句: UPDATE `order` SET status = 'PAID' WHERE id = 11 AND status = 'PAYING'; 其底层执行原理是一个涉及 …
继续阅读1 问题背景与核心结论 InnoDB 通过多粒度锁协调并发读写:表级锁管理开销低但冲突面大;行级锁把锁定范围收缩到索引记录及其间隙,是在 OLTP 场景下支撑高并发的关键。意向锁则在表级与行级之间建立 O(1) 的冲突检测通道,避免每次申请表锁时遍历全表行锁。 本文聚焦 …
继续阅读1 Buffer Pool 工作原理与核心机制详解 Buffer Pool 是 InnoDB 存储引擎架构的核心内存组件,其设计本质是利用 “内存访问速度远快于磁盘访问速度” 的硬件特性,通过缓存热数据(即高频访问的数据),将磁盘 IO 的消耗降到最低。 Buffer Pool …
继续阅读MySQL 作为当前业界应用最广泛的关系型数据库管理系统,其数据可靠性、事务一致性与服务持久性的实现,完全依赖于底层日志体系的支撑能力。 在架构设计层面,MySQL 将数据的修改操作先记录到日志中,再异步将数据页刷写到磁盘,这一设计极大优化了数据写入的性能;在故障恢复场景中,日志 …
继续阅读在 InnoDB 的事务体系中,隔离级别是顶层的一致性与性能平衡策略;并发事务异常是不同隔离级别下的实际风险表现;Read View 是实现无锁一致性读的可见性判断核心规则;MVCC 则是串联所有机制、实现读写无互斥并发的底层核心架构。四者并非独立的技术模块,而是形成了完整的闭环 …
继续阅读MySQL 索引是数据库性能优化的核心工具,其本质是帮助 MySQL 高效获取数据的排好序的数据结构。通过将随机 I/O 转化为顺序 I/O,索引能将查询复杂度从全表扫描的 O (n) 降至 O (log n) 级别,大幅减少磁盘 I/O 对性能的损耗。 从底层实现来看 …
继续阅读