位置: 编程技术 - 正文

Mysql事务处理详解(mysql的事务处理)

编辑:rootadmin

推荐整理分享Mysql事务处理详解(mysql的事务处理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql 事务语句,mysql 事务sql,mysql 事务sql,mysql事务有什么作用,mysql的事务处理,mysql 事务sql,mysql事务详解,mysql事务详解,内容如对您有帮助,希望把文章链接给更多的朋友!

一、Mysql事务概念

 MySQL 事务主要用于处理操作量大,复杂度高的数据。由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务用来管理 insert,update,delete 语句。

二、事务特性:Atomicity(原子性)、Consistency(稳定性,一致性)、隔离性(Isolation)和Durability(持续性,可靠性)。这四个特性也简称ACID性。

  1.原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一样。事务是应用中不可再分的最小逻辑执行体,一组事务,要么成功;要么撤回。

  2.稳定性,一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性来保证的。有非法数据(外键约束之类),事务撤回。

  3.隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不能相互影响。事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的%隔离,需要牺牲速度。

  4.持续性,可靠性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录到永久存储器中,通常是保存进物理数据库。软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit 选项 决定什么时候吧事务保存到日志里。

  注意事项:存储引擎MyISAM不支持事物,存储引擎InnoDB支持事物。事务只针对对数据数据产生影响的语句有效。show engines 查看mysql锁支持的数据引擎。

三、读取数据概念

  1.脏读(Dirty Reads):所谓脏读就是对脏数据的读取,而脏数据所指的就是未提交的数据。一个事务正在对一条记录做修改,在这个事务完成并提交之前,这条数据是处于待定状态的(可能提交也可能回滚),这时,第二个事务来读取这条没有提交的数据,并据此做进一步的处理,就会产生未提交的数据依赖关系。这种现象被称为脏读。

  2.不可重复读(Non-Repeatable Reads):一个事务先后读取同一条记录,但两次读取的数据不同,我们称之为不可重复读。也就是说,这个事务在两次读取之间该数据被其它事务所修改。

Mysql事务处理详解(mysql的事务处理)

  3.幻读(Phantom Reads):一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。

四、事务隔离级别

  修改事务隔离级别语法:  SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}

  1、Read Uncommitted(未授权读取、读未提交):这是最低的隔离等级,允许其他事务看到没有提交的数据。这种等级会导致脏读。如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。该隔离级别可以通过“排他写锁”实现。避免了更新丢失,却可能出现脏读。也就是说事务B读取到了事务A未提交的数据。SELECT语句以非锁定方式被执行,所以有可能读到脏数据,隔离级别最低。

  新建一个简单的student表,设置id和name,num字段,开启事务1对表新增通过存储过程,事务不提交,查看当前数据库事务状态,可以看到一条数据事务,事务级别为READ UNCOMMITTED:

  新建事务2,查询student表,我们在READ UNCOMMITTED级别下,可以看到其他事务未提交的数据:再去查看数据库事务状态,我们会看到状态正常。

  2.Read Committed(授权读取、读提交):读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。该隔离级别避免了脏读,但是却可能出现不可重复读。事务A事先读取了数据,事务B紧接了更新了数据,并提交了事务,而事务A再次读取该数据时,数据已经发生了改变。

  3.repeatable read(可重复读取):就是在开始读取数据(事务开启)时,不再允许修改操作,事务开启,不允许其他事务的UPDATE修改操作,不可重复读对应的是修改,即UPDATE操作。但是可能还会有幻读问题。因为幻读问题对应的是插入INSERT操作,而不是UPDATE操作。避免了不可重复读取和脏读,但是有时可能出现幻读。这可以通过“共享读锁”和“排他写锁”实现。

set session transaction isolation level repeatable read;

  4.串行化、序列化:提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。如果仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。序列化是最高的事务隔离级别,同时代价也花费最高,性能很低,一般很少使用,在该级别下,事务顺序执行,不仅可以避免脏读、不可重复读,还避免了幻像读。

set session transaction isolation level serializable;

      隔离等级   脏读   不可重复读   幻读      读未提交   YES   YES      YES      读已提交   NO    YES      YES      可重复读   NO    NO      YES      串行化    NO    NO       NO

五、完整例子包括提交和回滚完整例子

mysql解压包的安装基础教程 由于换了新电脑,所以的环境都要到新电脑去配置。突然发现mysql的配置忘了,然后百度又重新来一遍。特地写一篇文章记录一下,让自己长长记性。1.

阿里云下配置MySQL远程连接的步骤详解 前言众所周知在默认情况下,我们安在阿里云上的mysql是不支持远程连接的,但是我们还需要通过一些工具来连接mysql,如navicat,这时就需要我们来修改

计算机二级考试MySQL知识点 常用MYSQL命令 计算机二级考试MySQL知识点基础篇,MYSQL常用命令,具体如下常用MYSQL命令(将计算机二级站点加入收藏夹)启动:netstartmySql;进入:mysql-uroot-p/mysql-hlocalh

标签: mysql的事务处理

本文链接地址:https://www.jiuchutong.com/biancheng/348704.html 转载请保留说明!

上一篇:Mysql元数据如何生成Hive建表语句注释脚本详解(mysql 元数据管理)

下一篇:mysql解压包的安装基础教程(mysql解压安装教程5.7)

  • 增值税加计抵减政策10%和15%
  • 税收的本质是什么意思?
  • 利润分配未分配利润借贷方表示什么
  • 企业组织结构的形式
  • 多缴纳个人所得税怎么办
  • 中小企业开业税务登记所需资料
  • 国际船舶代理是什么意思
  • 房地产开发精装房是国家规定吗
  • 购买方已认证未抵扣,发票用退回吗
  • 新个税年终奖怎么申报
  • 年终奖金怎么扣税划算
  • 行政划拨无偿取得发票
  • 支付平台使用费怎么算
  • 公司股权平价转让要交税吗
  • 辅助生产交互分配后的实际费用应在进行分配
  • 土地使用权如何办理
  • 周年庆典布置现场
  • 技术开发费加计扣除优惠政策
  • 股息率超过10%的公司
  • 个人营业执照怎么注销网上申请流程
  • 代开票的时候扣了城建税,申报的时候还需要填写吗?
  • 个体户注销麻烦还是公司注销麻烦
  • 库存商品的核算方法
  • 出口汇兑损益的会计分录
  • netframework4.8安装未成功
  • 怎样设置登录帐号和密码
  • 所得税税负率一般是百分比还是千分比
  • nmeo.exe是什么
  • 谈谈你对人民美好生活的理解
  • 全网最详细的破解卡密软件教程[2021首发]
  • php打开文件读取内容
  • le启动exe是什么意思
  • windows server 2016 配置web网页
  • 房产税的纳税申报与处理会计分录
  • 在一个js文件中怎么写
  • 待安置期间生活补助费多少钱
  • 什么是国家秘密
  • ajaxuploadfile
  • 各浏览器主页的网址
  • ps怎么把多余的p掉
  • 利息发票可以抵扣吗
  • 应交税费下的科目设置
  • 公司购买的商品是白酒用于招待现金流项目是哪类
  • 母公司资产包括子公司吗
  • mysql查询数据库前五条信息
  • 投资性房地产如何折旧
  • 一般纳税人的账户可以随便转账到私人账户吗
  • 一般纳税人商贸公司增值税税负率
  • 分销佣金税务账务怎么做
  • 差旅费报销金额怎么算
  • 门面转让费怎么开发票
  • 半成品会计处理流程
  • 新办企业在建期间账务处理
  • 原材料暂估差异调整
  • 零工发生事故算工伤吗
  • 怎么填写专用发票信息
  • 航天信息服务费280元如何申报
  • sql server 批量删除
  • windows server 2008 u盘安装
  • win8pe下载iso
  • windows7如何启动记事本
  • 苹果笔记本安装win10
  • hpz12进程
  • linux如何进行命令操作
  • jq拖拽div替换位置
  • 攻击判定是什么意思
  • JQuery和HTML5 Canvas实现弹幕效果
  • js中的垃圾回收机制有哪些方法
  • linux禁止所有用户登录
  • python,字符串
  • 一篇文章的
  • jquery iframe src
  • 如何查询企业税务评级
  • 甘肃国家税务局官网
  • 广州电子税务局财务报表在哪里查询
  • 纳税人如何划分
  • 税务局文化建设实施方案
  • 北京的个人所得税怎么算
  • 普宁市离揭阳市有多远
  • 一般纳税人申请流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设