事务的特性和隔离级别
Posted sasal
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务的特性和隔离级别相关的知识,希望对你有一定的参考价值。
事务的特性:ACID
原子性:事务是一个不可分割的工作单元,事务中的操作要么都发生,要么都不发生。
一致性:一个事务中,事务前后的数据完整性要保持一致。
隔离性:多个事务,多个用户并发访问数据库时,一个用户的事务不能被其他用户干扰。
持久性:事务一旦提交,数据永久保存在数据库。
并发访问引起的问题(由事务的隔离性引起的)
脏读:读取到用户还没提交的数据。(在事务commit之前,sql执行后会将数据存到日志。)
不可重复读取:一次事务中,两次读取同一个数据,数据内容不一致。
虚读/幻读:一次事务中,两次读取的数据量(简单理解为行数)不一致。
事务的隔离级别:
1/ read uncommitted 读取尚未提交的数据 (不能解决问题)
2/read committed 读取已经提交的数据 (解决脏读)----oracle默认
3/repeatable read 重读读取 (解决脏读 和 不可重复读) ----mysql默认
4/serializable 串行化 (解决脏读 不可重复读 和 虚读/幻读)----相当于锁表
以上是关于事务的特性和隔离级别的主要内容,如果未能解决你的问题,请参考以下文章