数据库隔离级别

一、事务和隔离级别
  事务的概念:事务是把对数据库的一系列操作都看做一个整体,要么全部成功,要么全部失败,利用事务我们可以保证数据库的完整性,事务具有原子性。
  隔离级别:隔离级别定义了事务与事务之间的隔离距离。

  

  脏读(dirty read):当一个事务读取另一个事务未提交的修改时,产生脏读。
  不可重复读(nonrepeated read):同一查询在同一事务中多次进行,由于其他事务提交所做的修改,导致每次返回的结果不同,此时发生不可重复读。
  幻读(phantom read):同一查询在同一事务中多次进行,由于其他事务或提交所做的新增删除操作,导致每次得到的不同的结果集,此时发生幻读。

  不可重复读侧重于修改,幻读侧重于新增或者删除。解决不可重复读只需要锁住满足条件的行,解决幻读需要锁表。

二、Oracle的事务隔离级别有两种

  • READ COMMITTED :读已提交
  • SERIALIZABLE:串行读取

  Oracle默认隔离级别为:读已提交(READ COMMITTED)

三、MySQL的事务隔离级别有四种

  • 读未提交 (Read uncommitted)
  • 读已提交 (Read committed)
  • 可重复读 (Repeated read)
  • 可串行化 (Serializable)

  MySQL默认隔离级别为:可重复读 (Repeated read)

 

参考链接:数据库的4种隔离级别

posted @ 2020-01-09 11:20  莫等、闲  阅读(193)  评论(0编辑  收藏  举报