iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL事务处理
  • 708
分享到

MySQL事务处理

MySQL事务处理 2014-12-03 04:12:02 708人浏览 猪猪侠
摘要

概述 在Mysql中只有使用了InnoDB数据库存储引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的sql语句要么全部成功,要么全部失败。 事务用来管理DDL、DML、DCL操作,比如:insert、

MySQL事务处理

概述

  • Mysql中只有使用了InnoDB数据库存储引擎的数据库或表才支持事务
  • 事务处理可以用来维护数据库的完整性,保证成批的sql语句要么全部成功,要么全部失败。
  • 事务用来管理DDL、DML、DCL操作,比如:insert、update、delete语句,默认是自动提交的

一般来讲,事务是必须满足4个条件(ACID)

  1. Atomicity(原子性)
  2. Consistency(一致性)
  3. Isolation(隔离性) -->由mvcC的机制来实现的
    1. MVCC:优化读写性能(读不加锁,读写不冲突。不能优化读读和写写这种情况)
  4. Durabolity(持久性)

对于ACID的解释如下:

  1. 原子性:构成事务的所有操作必须是一个逻辑单元,要么全部成功,要么全部失败。
  2. 一致性:数据库再事务执行前后状态都必须是确定的或者是一致的。
  3. 隔离性:事务之间不会相互影响。

事务支持

  在mysql命令行的默认设置下,事务都是自动提交的,既执行SQL语句后就会马上执行COMMIT操作,因此要显式地开启一个事务必须使用命令BEGIN或START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。

常见的操作

  • BEGIN或START TRANSACTION:显式地开启一个事务;
  • COMMIT也可以使用COMMIT WORK,不过二者是等价的,COMMIT会提交事务,并使已对数据库进行的所有修改成为永久性的
  • ROLLBACK也可以使用ROLLBACK WORK,不过二者是等价的,回滚回话结束用户的事务,并撤销正在进行的所有未提交的修改。

事务并发问题

在事务的并发操作中可能会出现一些问题:

  • 丢失更新:一个事务更新之后,另一个事务也更新了,但是第二个事务回滚了,则第一个事务也被回滚了
  • 脏读:一个事务读取到另一个事务未提交的数据
  • 不可重复读:一个事务因读取到另一个事务已提交的数据,导致对同一条记录读取两次以上的结果不一致,update操作。
  • 幻读:一个事务因读取到另一个事务已提交的数据。导致对同一张表读取两次以上的结果不一致,insert、delete操作

事务隔离级别

  为了避免上面出现的几种情况,在MySQL规范中,定义了4个事务隔离级别,不同隔离级别对事物的处理不同

由低到高:

  1. Read uncommitted(读未提交):最低级别,任何情况都无法保证。
  2. Read committed(读已提交):可避免脏读的发生。
  3. Repeatable read(可重复读):可避免脏读,不可重复读的发生。
  4. Serializable(串行化):可避免脏读,不可重复读,幻读的发生。

默认隔离级别

  大多数据库的默认隔离级别是Read committed

查看隔离级别

select @@tx_isolation

 

修改事务隔离级别

set [ global | session ] transaction isolation level Read uncommitted | Read committed | Repeatable | Serializable;

注意事项

  隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。

  对于多数应用程序,可以优先考虑把数据库系统的隔离级别设置为Read Committed。他能够避免脏读,而且具有较好的并发性能,尽管他会导致不可重复度、幻读这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL事务处理

本文链接: https://www.lsjlt.com/news/6654.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL事务处理
    概述 在MySQL中只有使用了InnoDB数据库存储引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部成功,要么全部失败。 事务用来管理DDL、DML、DCL操作,比如:insert、...
    99+
    2014-12-03
    MySQL事务处理
  • mysql事务处理(转)
    mysql事务处理(转)[@more@]缺省的,MySQL 运行在 autocommit 模式。这就意味着,当你执行完一个更新时,MySQL 将立刻将更新存储到磁盘上。 如果你使用事务安全表 (例如 Inn...
    99+
    2022-10-18
  • Node Mysql事务处理封装
    node回调函数的方式使得数据库事务貌似并没有像java、php那样编写简单,网上找了一些事务处理的封装并没有达到自己预期的那样简单编写,还是自己封装一个吧。封装的大体思路很简单:函数接受一个事务处理的函数...
    99+
    2022-10-18
  • 如何在mysql中事务处理
    如何在mysql中事务处理?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。事务的特性: 事务有以下四个标准属性的缩写ACID,通常被称...
    99+
    2022-10-18
  • MySql事务处理怎么创建
    本篇内容主要讲解“MySql事务处理怎么创建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySql事务处理怎么创建”吧!#本文中我的用计算机的MYSQL数据库...
    99+
    2022-10-19
  • 什么是MySQL的事务处理
    本文主要给大家简单讲讲什么是MySQL的事务处理,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望什么是MySQL的事务处理这篇文章可以给大家带来一些实际帮助。...
    99+
    2022-10-18
  • Spring事务专题(三)事务的基本概念,Mysql事务处理原理
    前言 本专题大纲: 专栏大纲 我重新整理了大纲,思考了很久,决定单独将MySQL的事务实现原理跟Spring中的事务示例分为两篇文章,因为二者毕竟没有什么实际关系,实际上如果你对MySQL的事务原理不感兴趣也可以直接跳过本文,等待接下来两...
    99+
    2017-03-18
    Spring事务专题(三)事务的基本概念,Mysql事务处理原理 数据库入门 数据库基础教程 数据库 mysql
  • mysql事务处理指的是什么
    这篇文章主要介绍了mysql事务处理指的是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql事务处理指的是什么文章都会有所收获,下面我们一起来看看吧。在mysql中,...
    99+
    2022-11-30
    mysql
  • 【Mysql】mysql事务处理用法与实例详解
    来源:转载  代码如下 复制代码 root@host# mysql -u root -p pas...
    99+
    2022-10-18
  • MySQL事务处理实现方法步骤
    需求说明: 案例背景:银行的转账过程中,发生意外是在所难免。为了避免意外而造成不必要的损失,使用事务处理的方式进行处理:A账户现有余额1000元,向余额为200的B账户进行转账500元。可能由于某...
    99+
    2022-10-18
  • 如何实现MySQL中的事务处理?
    如何实现MySQL中的事务处理?事务是数据库中重要的概念之一,能够保证数据的一致性和完整性,确保在并发操作中数据的正确性。MySQL作为一种常用的关系型数据库,也提供了事务处理的机制。一、事务的特点事务具有以下四个特点,通常用ACID来概括...
    99+
    2023-10-22
    MySQL 事务 处理
  • MySQL 事务管理
      事务的4个特性(ACID) 原子性 Atomicity。每个事务中的操作,要么都成功,要么都失败 一致性 Consistency。事务执行前后,数据库中的数据应该保持一致 隔离性 Isolation。事务之间应该是隔离的,事...
    99+
    2015-09-09
    MySQL 事务管理
  • Mysql事务原理
    一、什么是事务 事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元); 事务的四大特性: 原子性(Atom...
    99+
    2020-08-23
    Mysql事务原理
  • 三分钟掌握MySQL中事务的处理
    本文主要给大家介绍MySQL中事务的处理,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL中事务的处理吧。步骤:1.开启事务 start tr...
    99+
    2022-10-18
  • MYSQL事务处理的主要两种方法
    下文主要给大家带来MYSQL事务处理的主要两种方法,希望这些内容能够带给大家实际用处,这也是我编辑MYSQL事务处理的主要两种方法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。使用事务要注意以下三...
    99+
    2022-10-18
  • MYSQL事务处理两种常见的方法
    下文给大家带来关于MYSQL事务处理两种常见的方法,感兴趣的话就一起来看看这篇文章吧,相信看完MYSQL事务处理两种常见的方法对大家多少有点帮助吧。        &...
    99+
    2022-10-18
  • 了解MySQL MVCC 原理,优化数据库事务处理
    了解MySQL MVCC 原理,优化数据库事务处理近年来,随着数据量的不断增长和应用需求的提升,数据库事务处理的性能优化成为了数据库开发和运维中一个非常重要的环节。MySQL作为最常用的开源关系型数据库之一,其MVCC(Multi-Vers...
    99+
    2023-10-22
    MySQL 优化 mvcc
  • node连接mysql查询事务处理的实现
    目录进入正题 mysql 增删改查mysql 事务处理自己用 mysql 很多次的,然后又是主玩nodejs的.专门写一篇文章来说说nodejs连接mysql数据库。在使用之前,请检...
    99+
    2022-11-12
  • 如何实现MySQL中事务处理的语句?
    如何实现MySQL中事务处理的语句?在数据库操作中,事务处理是非常重要的一部分,它可以确保一系列的操作要么全部执行,要么全部不执行。MySQL中的事务处理可以通过以下示例代码来实现。首先,让我们创建一个示例表格来演示事务处理的语句:CREA...
    99+
    2023-11-09
    MySQL 事务 编程关键词: MySQL 事务处理语句实现
  • NodeJs使用Mysql模块实现事务处理实例
    依赖模块: 1. mysql:https://github.com/felixge/node-mysql npm install mysql --save 2. async:https://githu...
    99+
    2022-06-04
    实例 模块 事务处理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作