码迷,mamicode.com
首页 > 数据库 > 详细

SQL事务

时间:2021-06-04 19:10:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:rac   脏读   机制   情况   用户   一致性   读取   自动   持久化   

Oracle
SQL事务
事务:表示操作集合,不可分割,要么全部成功,要么全部失败
 
事务的开始取决于一个DML语句 增删改查;
 
事务的结束
1.正常的commit(使数据修改生效) 或 rollback 数据恢复到原有的状态
2.自动提交,一般要将自动提交关闭:因为效率太低
3.用户关闭会话,会自动提交
4.系统崩溃或者断电的时候 会回滚到上一个状态
 
事务的四个特性
ACID
A:原子性:表示不可分割,一个操作要么全部执行,要么全部失败
C:一致性:保证数据的一致性,经过多个操作,数据的状态不会改变,从一个一致性状态到另一个一致性状态
I:    隔离性:各个事务之间相互之间不会产生影响(重点:隔离级别)严格的隔离性会导致效率降低,在某些情况下
                    隔离级别:
                            读未提交 (会产生 脏读,不可重复度,幻读)
                            读已提交 (会产生 不可重复度,幻读)
                            可重复度 (会产生 幻读)
                            序列化
                    数据不一致的问题::假定有两个事务去操作数据库  事务A 事务B,先要将两个事务都处于开启的状况
                            脏读   事务A修改了数据库信息,但是未提交,事务B去执行查询,缺查询到了修改的数据库信息,读取到了不存在的数据
                            不可重复读 : 事务A修改数据库信息之后,并提交了事务,事务B查到了修改之后的数据, 数据相较于事务B开启之后发生了改变, 即事务b开始查询到 不等于事务A提交之后 事务b查询到内容
                            幻读:事务a增加或删除之后,事务b查询该表,该表还是事务a未增加删除之前的状况,但是当你增加或删除 和事务a增加删除一样的数据的数据,会报错,明明没有却读取到了,就是幻读
D:持久性:所有数据的修改必须要持久化存储到硬盘中,不会因为应用程序关闭而变化
 
最重要的是一致性:
    因为:所有的特性都是为了保证数据的一致性,所以一致性是最终追求,通过其他三个特性来保证一致性、
 
锁机制:
    解决并发访问的时候,数据不一致的问题,需要给数据加锁,加锁的同时需要考虑 粒度  的问题
    操作对象:数据库 表 行
    以行为主
    

SQL事务

标签:rac   脏读   机制   情况   用户   一致性   读取   自动   持久化   

原文地址:https://www.cnblogs.com/wxgShareBlog/p/14847736.html

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