8.事务的详细

作者: 光小月 | 来源:发表于2018-04-20 09:40 被阅读6次

1. 事务的四个特性:

  • 原子性 A -Atomicity
  • 一致性 C - Consistency
  • 隔离性 I - Isolation
  • 持久性 D- Durability

2. 事务不隔离带来的问题:

  • 更新丢失
  • 脏读
  • 不可重复读
  • 虚读(幻读)。
其中更新丢失就是并发写,这是一定不允许的,因此一定要解决更新丢失问题。

3. 事务隔离的级别:

  • 读未提交 -read uncommitted -RU
  • 读已提交 -Read committed -RC
  • 可重复读 -Repeatable Read -RR
  • 串行化 -Serializable -S
更新丢失 脏读 不可重复读 虚读
RU(读未提交) 避免
RC(读提交) 避免 避免
RR(可重复读) 避免 避免 避免
S(串行化) 避免 避免 避免 避免
(读已提交)

4. 常见数据库的事务隔离

数据库 默认级别
MySQL 可重复读(Repeatable Read)
Oracle 读提交(Read Committed)
SQLServer 读提交(Read Committed)
DB2 读提交(Read Committed)
PostgreSQL 读提交(Read Committed)

在MySQL数据库中,支持上面四种隔离级别,默认的为Repeatable read (可重复读);此外,(通过Next-key lock加锁方法即范围锁解决不可重复读和幻读问题,如select * from t where a>10会对key为[10,infinite)范围的行加锁,这样其他事务就不能对此范围内key对应的行更改)达到了SQL、SQL2标准中的Serializable级别。

在MySQL中查看与设置隔离级别, 使用JDBC对数据库的事务设置隔离级别
详见: https://www.cnblogs.com/z-sm/p/7245981.html

欢迎关注,以后会不定时更新!

摘自: 1. https://www.cnblogs.com/z-sm/p/7245981.html

  1. http://www.cnblogs.com/fjdingsd/p/5273008.html

相关文章

网友评论

    本文标题:8.事务的详细

    本文链接:https://www.haomeiwen.com/subject/sitakftx.html