码迷,mamicode.com
首页 > 其他好文 > 详细

事务的特性和隔离级别

时间:2019-04-03 12:05:59      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:持久   内容   其他   读取   不一致   一个   -o   bsp   read   

事务的特性:ACID

原子性:事务是一个不可分割的工作单元,事务中的操作要么都发生,要么都不发生。

一致性:一个事务中,事务前后的数据完整性要保持一致。

隔离性:多个事务,多个用户并发访问数据库时,一个用户的事务不能被其他用户干扰。

持久性:事务一旦提交,数据永久保存在数据库。

 

并发访问引起的问题(由事务的隔离性引起的)

脏读:读取到用户还没提交的数据。(在事务commit之前,sql执行后会将数据存到日志。)

不可重复读取:一次事务中,两次读取同一个数据,数据内容不一致。

虚读/幻读:一次事务中,两次读取的数据量(简单理解为行数)不一致。

 

事务的隔离级别:

1/ read uncommitted 读取尚未提交的数据 (不能解决问题)

2/read committed 读取已经提交的数据 (解决脏读)----oracle默认

3/repeatable read 重读读取 (解决脏读 和 不可重复读) ----mysql默认

4/serializable 串行化 (解决脏读 不可重复读 和 虚读/幻读)----相当于锁表

 

事务的特性和隔离级别

标签:持久   内容   其他   读取   不一致   一个   -o   bsp   read   

原文地址:https://www.cnblogs.com/SasaL/p/10647615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!