RR隔离级别

有没有解决幻读

三种问题

  • 脏读(读取到了未提交的事务,用MVCC中的快照读解决(RC))
  • 不可重复读(两次读取的同一条数据不一样,用RR解决)
  • 幻读(读到了新增的数据,MVCC+间隙锁能解决大部分幻读问题)

可以解决的幻读

MVCC的快照读情况下不会发生幻读

利用加锁(间隙锁)可以防止其他事务新增

无法解决的幻读

先快照读然后当前读

所以RR可以解决部分幻读问题

为什么RR是MySQL的默认隔离级别

结论:为了兼容binlog中的statement格式

为什么

在早期binlog格式为statement(记录事务修改的原SQL语句),在RC隔离级别下会发生以下问题

主库中会存在一条数据, 由于B先提交从库中没有数据,发生了数据不一致

RR级别下:增删改语句会加临键锁,insert会等事务提交后才执行,所以是A先提交, B再提交, 主从数据一致,所以RC和statement格式不能一起使用

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇