当前位置:Gxlcms > 数据库问题 > SQL事务

SQL事务

时间:2021-07-01 10:21:17 帮助过:18人阅读

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   脏读   机制   情况   用户   一致性   读取   自动   持久化   

人气教程排行