数据库#mysql
山水友相逢wxg
BUG虐我千百遍,我带她如初恋
展开
-
Mysql的MVCC的理解
阅读前说明:关于mysql的理解因为没有参考专业的书籍(看过的《高性能mysql》和《mysql》技术内幕都没有相关介绍,难道是我看到?),所以对于这一块的理解完全出自自己的理解(也参考了其他博友的文章),如果哪里有问题,欢迎一起探讨。 Undo和Redo 在理解mvcc前应该要先知道这两个概念。 1. Undo Log Undo Log 是什么: undo意为取消,以撤销操作为目的,返回指定某个...原创 2020-03-12 15:36:11 · 178 阅读 · 0 评论 -
Innodb存储引擎的锁机制(三)--怎么利用锁解决并发事务带来的问题?
1怎么利用锁解决并发事务带来的问题? 1. 解决脏读: 解释: 事务B在更新数据时,加上了X锁,则其他事务就不能读取和操作这条数据,事务A的select是不能直接从原表中查的,这时事务A会从快照中查询,因为快照中的数据是事务B 更新前保留的原始数据,所以事务A查到的结果不是18,而是16。 2. 解决不可重复读 解释: 事务A第一次查询的时候加了一把共享锁,此时其他事务只能读取,不能操作...原创 2020-03-12 14:36:18 · 216 阅读 · 0 评论 -
Innodb存储引擎的锁机制(二)-行锁的算法
以下几种锁,与其认为是一种锁,更可以理解为一种锁的算法。 1.临键锁(Next-key locks):对应explain的type=range(范围查找) 锁住记录+区间(左开右闭) 当sql执行按照索引进行数据的检索时,查询条件为范围查找(between and、<、>等)并有数据命中则此时SQL语句加上的锁为Next-key locks,锁住索引的记录+区间(左开右闭) begi...原创 2020-03-12 14:22:17 · 146 阅读 · 0 评论 -
Innodb存储引擎的锁机制(一)
一,锁 [外链图片转存失败(img-lmtV1JFs-1568648854110)(0677A7D9A267433F9A997388C7A5067A)] 隔离级别到底如何实现的呢? --》 锁、MVCC 锁是用于管理不同事务对共享资源的并发访问 表锁与行锁的区别: 锁定粒度:表锁 > 行锁 加锁效率:表锁 > 行锁 冲突概率:表锁 > 行锁 并发性能:表锁 < 行锁 Inn...原创 2019-09-16 23:48:34 · 193 阅读 · 0 评论