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