所谓事务,其实就是相当于操作系统里的原子性操作它将一组对于数据库表的操作绑定在一起,只有所有操作都成功,才提交,只要有一个操作失败的话,那么就不会提交。这样的机制保证了数据库数据的原子性、一致性、隔离性以及持久性。


所谓ACID即是上面提到的原子性、一致性、隔离性以及持久性。

原子性:事务被视为不可分割的最小单元。事务的所有操作要么全部提交成功,要么全部失败回滚。

一致性:数据库在事务执行前后保持一致性的状态。在一致性的状态之下,所有事务对一个数据的读取状态都是相同。 

 隔离性:一个事务所做的修改,在提交之前,对其他的事务是不可见的。

持久性:一旦事务提交之后,其所做的修改将永久的保存在数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。


首先还得明确,只有存储引擎为INNODB的MYSQL数据库这才支持事务!

要掌握事务机制,我们需要以下几个知识点:

1)对于表的增删改查的提交方式?

在MYSQL中,表的默认提交方式是自动提交(也即默认:autocommit=1),也就是对于表的操作是即时生效的。

可以通过set autocommit = 0; 修改为手动显示提交!显示提交的语句为 commit

2)事务如何开启?

在MYSQL中,事务通过语句   start transaction 开启!他等价于  set autocommit = 0。两者写一个就行了。

还有,在INNODB的锁机制中, start transaction 等价于 unlock 解锁操作

3)事务如何回滚?

记住!事务只支持 UPDATE/DELETE/INSERT语句的回滚,不支持SELECT/DROP/CREATE的回滚,但是事务处理块中可以使用这几条语句(SELECT/DROP/CREATE)。

rollback语句实现事务的回滚。默认情况下,回退到事务操作之前!在设置了保存点之后,可回滚到相应的保存点处!

4)如何设置保存点?如何根据设置的保存点进行回滚操作?

在每条操作之后添加语句   savepoint 保存点名称  即设置了对应操作的保存点!

通过 rollback to 保存点名称 可以回滚到相应的保存点,不过记住回滚点之前的操作都是生效的,回滚点之后的操作失效!


commit and chain  结束一个事务开启另一个事务

rollback and release  回滚之后断开客户端的连接


在无并发的情况之下,事务串行进行,隔离性一定能够满足!只要再满足原子性,就一定能够满足一致性!

在并发的情况之下,事务并行执行,除了要满足原子性,还要满足隔离性,事务的一致性才能满足!

事务做持久化是为了应对数据库崩溃的情况。

10.MYSQL:什么是事务?事务的性质?事务的应用?相关推荐

  1. mysql事务并发控制_MySQL之事务及并发控制

    本节索引: 一.事务Transaction 二.事务的隔离级别 三.并发控制 四.MVCC-多版本的并发控制协议 一.事务 什么是事务? 事务Transactions:一组原子性的SQL语句,或一个独 ...

  2. mysql隔离级别 简书_数据库事务和四种隔离级别

    什么是事务 事务(Transaction):访问并可能更新数据库中各种数据项的一个程序执行单元(unit),它通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起 ...

  3. 第六节:深究事务的相关性质、隔离级别及对应的问题、死锁相关

    一. 相关概念 前面系列中的章节的: 第二十二节: 以SQLServer为例介绍数据库自有的锁机制(共享锁.更新锁.排它锁等)和事务隔离级别  介绍了各种锁以及事务的隔离级别,是从数据库的角度进行介绍 ...

  4. mysql 默认事务隔离级别_MySQL 事务隔离级别详解

    个人公众号『码农札记』,欢迎关注,查看更多精彩文章. 简介: MySQL的事务隔离级别一共有四个,分别是读未提交.读已提交.可重复读以及可串行化. 四个特性ACID 原子性 (Atomicity) 事 ...

  5. mysql牵引例子_MySQL学习06(事务和索引)

    事务 概述 什么是事务 事务就是将一组SQL语句放在同一批次内去执行 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行 MySQL事务处理只支持InnoDB和BDB数据表类型 事务的ACI ...

  6. 在mysql数据库中,多表查询,事务,DCL,

    多表查询: * 查询语法:select列名列表from表名列表where.... * 准备sql# 创建部门表CREATE TABLE dept(id INT PRIMARY KEY AUTO_INC ...

  7. mysql 长事务查询_MySQL长事务详解

    前言: 『入门MySQL』系列文章已经完结,今后我的文章还是会以MySQL为主,主要记录下近期工作及学习遇到的场景或者自己的感悟想法,可能后续的文章不是那么连贯,但还是希望大家多多支持.言归正传,本篇 ...

  8. mysql 外键和事务,MySQL-约束和事务

    一.约束 约束是对表的强制规定 数据完成性:实体完整性.域完整性.参照完整性 实体完整性:保证表中的每一行数据在表中是唯一的 域完整性:数据库中的列必须满足某种特定的数据类型或约束.约束又分为强制域完 ...

  9. mysql 事务sql_mysql存储过程之事务篇

    事务的四大特征: ACID:Atomic(原子性).Consistent(一致性).Isolated(独立性).Durable (持久性) MySQL的事务支持不是绑定在MySQL服务器本身,而是与存 ...

最新文章

  1. UVa661 Blowing Fuses
  2. CVPR 2015 papers
  3. 科大星云诗社动态20210811
  4. adf4351使用_使用ADF绑定创建视图对象行CreateInsert操作
  5. [vue] vue的:class和:style有几种表示方式?
  6. python实现knn算法鸢尾花_Python学习之knn实现鸢尾花分类
  7. [区块链] 密码学——Merkle 树
  8. tftp下载文件为中文名【原创】
  9. 荣耀平板5升级鸿蒙,荣耀能否“升级”鸿蒙?赵明正式确认:华为做得好会考虑采用!...
  10. pandas将字符串转换成时间_数据处理利器 pandas 实例详解 (下)
  11. IDA中类似VS的Call stack函数调用关系视图
  12. 心理学实验必备 | 脑电实验流程及注意事项
  13. 如何将已有项目导入SVN
  14. 医疗健康大数据:应用实例与系统分析
  15. Infor LN咨询服务市场报告-行业发展机遇、市场定位及主要驱动因素
  16. 真无线蓝牙耳机哪个牌子好?最适合打游戏的无线耳机
  17. 受iPhone订单下滑影响 富士康大幅削减工人薪水福利
  18. 图解电动汽车:电动汽车的传感器
  19. 分布式缓存Redis之Pipeline(管道)
  20. 青海省公安厅部署科达至臻高清视频会议系统

热门文章

  1. 【OpenStack】OpenStack系列1之OpenStack本地开发环境搭建向社区贡献代码
  2. 1.在VS2010中文版中开发WP7程序
  3. 乔布斯成功的七条秘诀
  4. 【Python】raise ValueError(Too many dimensions: %d %d. % (ndim, ndmax))问题
  5. matlab实现图像的高斯滤波
  6. OpenCv霍夫变换与RANSAC检测圆形
  7. php处理小程序上传图片,微信小程序上传图片,PHP-Laravel框架实现
  8. cent os 下使用hashmap + string
  9. 三、入门实例----基于注解
  10. zabbix 监控 redis