除了设置默认的隔离级别外,MySQL还禁止在使用statement格式的binlog的情况下,将事务隔离级别设置为READ COMMITTED 。
一旦用户主动修改隔离级别,尝试更新时,会报错:
ERROR 1598 (HY000): Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
因此,我们现在明白了为什么MySQL选择Repeatable Read作为默认的数据库隔离级别了,实际上是为了与历史上那种statement格式的binlog保持兼容性 。
推荐阅读
- 电动车电池正常寿命是多久?为什么有的电池用一年就报废?有三大原因!
- 为什么老司机经常用S挡开车,一直用S挡会伤车吗?新手:早点知道就好了
- 为什么高档车都用宽轮胎,普通车都用窄轮胎?
- 为什么开车时有人喜欢把胳膊搭在车窗上?内行人告诉你,这是个高手
- 牛脸肉为什么不能多吃 牛脸肉怎么不能多吃
- 吴秀波为什么要与小三同归于尽?
- 蜈蚣怎么会出现在房间 蜈蚣为什么会出现在屋里
- 全麦粉可以做油茶面吗 全麦粉有油茶面味道吗为什么
- 石油的计算单位为什么是桶不是吨?一桶石油有多重?今天才明白
- 取保候审后又采集个人信息是为什么呢 取保候审为什么会人格测试呢