1、事务的基本特性
原子性(atomic):同一事务中的所有操作被认作是一个处理逻辑单元,要么全部成功,要么全部失败。
一致性(consistency):仅仅合法的数据才能被写入数据库,否则事务应该会滚到事务最初的状态。
隔离性(isolation):事务同意多个用户对同一条数据进行并发访问,而不破坏数据的正确性和完整性。并行事务之间相互独立。
持久性(durability):事务的结果必须得到固化。
2、事务的隔离级别待解决的问题
1)脏读:是指事务能够获取其他事务已经修改但是没有提交的数据。
2)幻读:事务A通过索引条件获取到了N条数据,之后事务B修改了这N条之外的M条数据或者是增加了M条符合事务A的索引条件的数据。导致事务A再次检索时搜索到了N+M条数据,产生了幻读。
3)不可重复读:两次读取的值不一样。
4)幻读和不可重复读之间的区别:不可重复读主要是针对update和delete的数据,幻读主要是针对的是insert数据。
3、事务的隔离级别
1)read uncommit(读未提交的数据)
2) read commit(读已提交的数据)
3) repeatable read (重复读)
4) serilization(序列化)
4、事务的隔离级别
事务的隔离级别 | 脏读 | 不可重复读 | 幻读 |
Read uncommit | 是 | 是 | 是 |
Read commit | 否 | 是 | 是 |
Repeatable read | 否 | 否 | 是 |
Seralization | 否 | 否 | 否 |