数据库事务

来源:互联网 发布:美工勾刀 编辑:程序博客网 时间:2024/06/03 17:54

此篇文章参考地址:点击打开链接,谢谢博主的分享。

我们的数据库
MySQL数据库为我们提供的四种隔离级别:
  ① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
  ② Repeatable read (可重复读):可避免脏读、不可重复读的发生。
  ③ Read committed (读已提交):可避免脏读的发生。
  ④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。

Mysql 的默认事务级别是: Repeatable read
Oracle的默认事务级别是:Read committed
查看数据库的事务级别命令是:select @@tx_isolation;

“脏读”比较好区别,现在看看“不可重复”和“幻读”的区别:
不可重复读的重点是修改:
同样的条件, 你读取过的数据, 再次读取出来发现值不一样了

幻读的重点在于新增或者删除
同样的条件, 第1次和第2次读出来的记录数不一样

当然, 从总的结果来看, 似乎两者都表现为两次读取的结果不一致.

但如果你从控制的角度来看, 两者的区别就比较大
对于前者, 只需要锁住满足条件的记录
对于后者, 要锁住满足条件及其相近的记录

0 0
原创粉丝点击