事务 保证一组数据库操作,要么全部成功,要么全部失败。 ACID特性 原子性:Atomicity 一致性:Consistency 隔离性:Isolation 持久性:Durability 当数据库中有多个事务同时执行的时候,就
保证一组数据库操作,要么全部成功,要么全部失败。
ACID
特性
Atomicity
Consistency
Isolation
Durability
当数据库中有多个事务同时执行的时候,就可能出现脏读(dirty read
)、不可重复读(non-repeatable read
)、幻读(phantom read
)的问题,为了解决这些问题,就有了“隔离级别”的概念。隔离的越严实,效率就会越低,需要在两者之间找一个平衡点。
事务隔离级别
隔离级别:串行化 > 可重复读 > 读提交 > 读未提交
read uncommitted
,一个事务还没提交时,它做的变更就能被别的事务看到。会导致“脏读”、“幻读”、“不可重复读”。read committed
,一个事务提交之后,它做的变更才会被其他事务-看到。避免了“脏读”,但不能避免“幻读”和“不可重复读”。repeatable read
,一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据时一致的。当然在可重复读的隔离级别下,未提交变更对其他事务也是不可见的,Mysql
的默认级别。 避免了“脏读”和“不可重复读”,但不能避免“幻读”。serializable
,对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。当出现读写冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。能比秒“脏读”、“幻读”、“可重复读”。不同事务级别带来的并发问题
MVVC
概念
Multi-Version Concurrency Cotrol
,多版本并发控制,直白的意思是同一份数据临时保留多个版本,进而实现并发控制。
在mysql
中建表时,每个表都会有三列隐私字段,其中和mvcC
有关系的有两列:
DB_TRX_ID
)DB_ROLL_PT
)--结束END--
本文标题: 事务隔离(3)
本文链接: https://lsjlt.com/news/5216.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0