MySql事务隔离级别
2023-12-23 13:19:47 106 举报
AI智能生成
MySQL事务隔离级别是控制并发事务之间相互影响的程度的机制。它定义了一个事务和其他正在并发执行的事务之间的可见性和隔离程度。MySQL提供了四种隔离级别:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化(SERIALIZABLE)。读未提交隔离级别允许事务
作者其他创作
大纲/内容
Spring@Transactional(isolation=Isolation.Defalut)<br>即数据库默认支持的隔离级别
Isolation.Defalut
Isolation.READ_UNCOMMITTED
Isolation.READ_COMMITTED
Isolation.REPEATABLE_READ
Isolation.SERIALIZABLE
MySQL事务隔离级别
支持标准的4种隔离级别<br>默认隔离级别为RR<br>但不会发生脏写、脏读、不可重复读和幻读MVCC多版本并发控制机制<br>multi-version concurrent control
undo log多版本链条(快照)
ReadView<br>RC级别下事务的每次重新生成ReadView
SQL标准事务4种隔离级别
<span style="font-size: inherit;">read uncommitted(RU)<br></span>读未提交
read committed(RC)<br>读已提交
repeatable read(RR)<br>可重复读
serializable<br>串行化
元数据锁(Metadata Locks)<br>DDL语句且与其他锁互斥
表锁
独占锁<br>lock tables tableName write
意向独占锁(事务自动)
共享锁<br>lock tables tableName read
意向共享锁(事务自动)<br>
行锁
独占锁 X<br>显式加锁for update
共享锁 S<br>显式加锁lock in sharre mode
<ol><li>共享锁与共享锁不互斥</li><li>独占锁、独占锁、共享锁相互互斥</li><li>通常使用Redis或zookeeper替代显式加锁</li></ol>
0 条评论
下一页