1. 事务提交过程

  1. 事务

基本概念

概念:一个或者多个DML语言组成

特点:要么都成功,要么都失败

事务的隔离性:多个客户端同时操作数据库的时候,要隔离它们的操作,

否则出现:脏读  不可重复读  幻读

Oracle默认情况下,事务是打开的

commit案例:

SQL> create table t1(tid int,tname varchar2(20));

表已创建。

SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

BONUS                          TABLE

DEPT                           TABLE

EMP                            TABLE

EMP10                          TABLE

SALGRADE                       TABLE

T1                             TABLE

已选择6行。

SQL> insert into t1(tid,tname) values(1,'aaaaa');

已创建 1 行。

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

SQL> commit;

提交完成。

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

SQL> rollback;

回退已完成。

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

SQL>

rollback案例:

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

SQL> insert into t1(tid,tname) values(2,'bbb');

已创建 1 行。

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

2 bbb

SQL> rollback;

回退已完成。

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

SQL>

  1. Oracle中的事务生命周期

1.事务的起始标志 DML语言(oracle默认事务是打开的)

2.事务的结束标志

提交

显式提交commit

隐式提交

执行DDL语句

Eg:执行create table的时候还有1个隐式的功能

提交之前没有提交的DML语句(insert update)

正常退出

回滚

显式rollback

隐式:掉电/宕机/非正常退出,这几者等价于系统出错了

4 保存点savepoint

案例:

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

SQL> insert into t1(tid,tname) values(2,'bbb');

已创建 1 行。

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

2 bbb

SQL> rollback;

回退已完成。

SQL> select * from t1;

TID TNAME

---------- --------------------

1 aaaaa

SQL>

总结:最后一条insert语句没有插入进去,回滚到了指定的保存点

  1. 数据库的隔离级别

对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题

脏读:对于两个事务T1,T2,T1读取了已经被T2更新但还没有被提交的字段之后,若T2回滚。T1读取的内容就是临时且无效的。

不可重复读:对于两个事物T1,T2,T1读取了一个字段,然后T2更新了该字段,之后T1再次读取同一个字段,值就不同了。

幻读:对于两个事务T1,T2,T1从一个表中读取了一个字段,然后T2在该表中插入了一些新的行。之后,如果T1再次读取同一个表,就会多出几行。

数据库事务的隔离性:数据库系统必须具有隔离并发运行多个事务的能力,使它们不会相互影响,避免各种并发问题。

一个事务与其他事务隔离的程度称为隔离级别. 数据库规定了多种事务隔离级别, 不同隔离级别对应不同的干扰程度, 隔离级别越高, 数据一致性就越好, 但并发性越弱

数据库提供4中事务隔离级别:sql99

Oracle 支持的 2 种事务隔离级别:READ COMMITED, SERIALIZABLE. Oracle 默认的事务隔离级别为: READ COMMITED

另外还支持一种隔离级别:read-only

Mysql 支持 4 中事务隔离级别. Mysql 默认的事务隔离级别为: REPEATABLE READ

4.事务提交过程,事务基本概念,Oracle中的事务生命周期,保存点savepoint,数据库的隔离级别相关推荐

  1. mysql 提交_MySQL 事务提交过程

    开发老大要求通过binlog查询一条被修改的数据,数据被查出后问我,有没有可能binlog中不会记录,回答不会,因为数据被修改,若失败直接回滚,不会在binlog中记录,此刻一个朋友用了洪荒之力告诉我 ...

  2. linux mysql提交_MySQL 事务提交过程

    开发老大要求通过binlog查询一条被修改的数据,数据被查出后问我,有没有可能binlog中不会记录,回答不会,因为数据被修改,若失败直接回滚,不会在binlog中记录,此刻一个朋友用了洪荒之力告诉我 ...

  3. mysql 提交事务_MySQL事务提交过程

    一.MySQL事务提交过程(一) MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提交过程. 由于mysql插件式存储架构,导致开启binlog后,事务提交实 ...

  4. 列表数据提交_MySQL事务提交过程(一)

    MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提交过程. MySQL体系结构 由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交 ...

  5. oracle查大事务语句,查询Oracle 中死事务的语句

    查询Oracle 中死事务的语句 SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ 2  KTUXESTA Statu ...

  6. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(6):Spring IOC容器学习(概念、作用、Bean生命周期)...

    一.IOC控制反转概念 控制反转(IOC)是一种通过描述(在Java中可以是XML或者是注解)并通过第三方去生产或获取特定对象的方式. 主动创建模式,责任在于开发者,而在被动模式下,责任归于Ioc容器 ...

  7. mysql事务在提交后才发送给数据库执行_从一个线上问题分析binlog与内部XA事务提交过程...

    1. 问题 业务上新增一条订单记录,用户接收到BinLake拉取的MySQL从库数据消息后,马上根据消息内的订单号去查询同一个MySQL从库,发现有些时候无法查到该条数据,等待大约500ms-1000 ...

  8. Oracle中的事务之savepoint

    一.基本概念 保存点savepoint是事务中的一点,通过rollback可以返回到某个保存点.一个事务中可以有多个保存点.一旦事务提交,该事务中的保存点会自动被删除,那么无论刚才做了多少个保存点,都 ...

  9. oracle事务重要属性,Oracle中的事务(2)--属性和隔离级别

    事务的属性 1.只读属性(read only) 只读事务,只执行查询操作,而不允许执行DML(增.删.改)操作,使用只读事务,可以让用户只取到某个时间点的数据. 假如有一个机票代售点,有一个管理员想在 ...

最新文章

  1. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.3. 有心朝Linux作业系统学习者的学习态度)
  2. 谈谈高并发系统的限流
  3. JNI学习积累之二 ---- 数据类型映射、域描述符说明
  4. Cloud Insight!StatsD 系监控产品新宠!
  5. 《Hadoop大明白》【1】Hadoop的核心组件
  6. [css] 举例说明:not()的使用场景有哪些
  7. 数据合并设计_Excel数据管理中的那些“坑”,你踩了几个?
  8. 免费的数据库建模工具
  9. MySQL Root密码丢失解决方法总结
  10. 学数据分析究竟要懂哪些统计学?全都给你梳理好了,拿走不谢
  11. swoole mysql 协程_swoole-orm: 基于swoole的mysql协程连接池,简单封装。实现多个协程间共用同一个协程客户端。参考thinkphp-orm...
  12. 中国内脏痛行业市场供需与战略研究报告
  13. Linux文件系统ext3与ext4主要区别
  14. 【编译原理笔记06】语法分析,移入-归约分析:自底向上的分析,LR(0)分析法,LR(0)分析表的构建(基于自动机)
  15. 计算机通信发展史,通信技术发展史
  16. 基于服务的多源异构数据整合平台解决方案
  17. 服务器搬迁没有搭建文档,云服务器搬迁
  18. CSS3 animation 动画用法介绍
  19. 图片动漫化 - 面部 - AnimeGAN
  20. MYSQL修改初始化密码的方法

热门文章

  1. VTK:ShareCamera分享相机用法实战
  2. wxWidgets:键盘 wxWidgets 示例
  3. boost::regex模块实现将 C++ 文件转换为语法突出显示的 HTML的测试程序
  4. boost::hana::when用法的测试程序
  5. boost::vf2_subgraph_iso用法的测试程序
  6. GDCM:gdcm::XMLPrinter的测试程序
  7. Boost::context模块callcc的jump_void测试程序
  8. Boost:boost::asio模块的allocation service分配服务测试程序
  9. VTK:Utilities之FilenameFunctions
  10. VTK:网格之TableBasedClipDataSetWithPolyData