MySQL
文章平均质量分 94
程序员Null的自我修养
专注于后端编程开发技术与编程项目经验知识分享。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一文全面解析Undo Log、Redo Log和Binlog的底层原理
MySQL数据库通过UndoLog、RedoLog和Binlog三大日志机制确保数据安全与一致性。UndoLog记录修改前的数据,支持事务回滚和MVCC;RedoLog采用WAL技术,保证事务持久性;Binlog实现主从复制和数据恢复。三者通过两阶段提交协同工作:RedoLog先准备,Binlog写入后RedoLog再提交,确保主从数据一致。这种设计平衡了性能与数据安全,是MySQL实现ACID特性和高可用的核心机制。原创 2025-12-28 17:16:19 · 698 阅读 · 0 评论 -
一文揭秘MySQL隔离级别底层实现机制
1. 并发事务三大问题:脏读(读未提交数据)、不可重复读(数据内容变)、幻读(记录数量变);2. 四种隔离级别:读未提交(最松)→ 读提交 → 可重复读(MySQL默认)→ 串行化(最严);3. MySQL RR级别的幻读解决方案:快照读靠MVCC,当前读靠next-key lock;4. 核心实现差异:RC和RR的区别是Read View创建时机,读未提交读最新,串行化靠锁排队;5. 事务启动时机:begin需等第一条select,with consistent snapshot立即启动。原创 2025-12-28 16:44:24 · 1181 阅读 · 0 评论 -
三分钟看懂MySQL锁:MySQL到底有哪些锁
MySQL锁机制是保证数据一致性的核心手段,主要包括全局锁、表级锁和行锁三种类型。全局锁锁定整个数据库用于备份,但会导致业务停滞;表级锁锁定整张表,包括表锁、元数据锁、意向锁和AUTO-INC锁,适合并发度不高的场景;行锁粒度最细,包括记录锁、间隙锁、临键锁和插入意向锁,支持高并发但开销较大。实际开发中应优先使用InnoDB引擎,避免长事务,根据业务场景选择合适的锁策略,高并发用行锁,简单操作用表锁,备份时优先用事务快照而非全局锁。原创 2025-12-27 14:07:56 · 1145 阅读 · 0 评论 -
三分钟看懂幻读:MySQL如何彻底解决幻读问题
幻读是指同一事务内多次查询结果集行数不一致的现象。MySQL通过MVCC解决快照读的幻读问题,但对当前读(如SELECT...FOR UPDATE)仍需配合间隙锁。可重复读隔离级别下,MVCC+间隙锁可基本避免幻读,但在更新不存在记录或混合快照读/当前读时仍可能出现幻读。建议开发者对范围统计使用当前读加锁,保持默认RR隔离级别,或必要时使用串行化隔离级别。原创 2025-12-27 11:39:17 · 872 阅读 · 0 评论 -
三分钟看懂MVCC:为什么你的SELECT从来不阻塞UPDATE
三分钟让我们揭开MySQL中一个神奇机制的神秘面纱——MVCC(多版本并发控制)原创 2025-12-27 11:29:50 · 1027 阅读 · 0 评论
分享