mysql-行锁理论
2021-06-08 本文已影响0人
卫泽洪_70a7
特点
- 偏向InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
- InnoDB与MyISAM的最大不同有两点:
一是支持事务(TRANSACTION);
二是采用了行级锁
由于行锁支持事务,老知识复习
-
事务(Transaction)及其ACID属性
事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。
1、原子性(Atomicity): 事务时一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。
2、一致性(Consistent): 在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保证数据的完整性;事务结束时,所有的内部数据结构(例如B树索引或双向链表)也都必须时正确的。
3、隔离性(Isolation): 数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境。这意味着事务处理过程中的中间状态对外部时不可见的,反之亦然。
4、持久性(Duration):事务完成之后,它对于数据的修改都是永久性的,即使出现系统故障也能够保持。 -
并发事务处理带来的问题
1、更新丢失(Lost Update)
image.png2、脏读(Dirty Reads)
image.png
3、不可重复读(Non-Repeatable Reads)
image.png
4、幻读(Phantom Reads)
image.png
-
事务隔离级别(mysql的事务隔离级别时可重读)
image.png
查看当前数据库的事务隔离级别
show
image.png