返回顶部
首页 > 资讯 > 数据库 >怎么理解MySQL事务
  • 612
分享到

怎么理解MySQL事务

2023-06-26 10:06:03 612人浏览 独家记忆
摘要

这篇“怎么理解MySQL事务”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么理解Mysql事务”文章吧。事务指逻辑上的一组

这篇“怎么理解MySQL事务”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么理解Mysql事务”文章吧。

    事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。

    事务的四大特性 ( ACID )

    原子性(Atomicity):一个事物是一个不可分割的单位,要么全都执行,要么都不执行;

    一致性(Consistency):事务执行前后,数据处于合法的状态;

    持久性(Isolation):事务执行完后,数据的修改是持久的,不会因为其他操作或故障而对其产生影响;

    隔离性(Durability):多个事务并发执行的,事务之间不互相干扰。

    假如事物的一个操作整体(动作A,B),动作A,执行完了,动作B,执行到一半,执行过程出错,这时怎么办?有回滚机制,有个日志会记录这些操作,记录数据修改前和数据修改后的值。

    脏读

    事务A正在修改数据(但是没有提交),事务B就读取了这里的数据,此时事务B读取的操作称为脏读。 解决办法:给写操作加,当事务A在写数据的时候,事务B无法读取。

    不可重复读

    事务A修改数据之后提交了数据“name=L”,然后事务B就读取数据,但是此时A觉得修改的数据不满意“name=H”,继续修改提交了,此时事务B再次读取,发现,啊,怎么数据不一样了。这就是不可重复读的问题。 解决办法:给写操作加锁的同时,给读操作也加锁,当事务A在写的时候,事务B不可以读,事物B在读的时候,事物A也不可以写。

    幻读

    虽然已经给写操作加锁,和读操作加锁,但是会有种情况,事务B在读的时候,事务A无法修改name,但是事务A可以再写一个age,当事务B再次读取数据的时候发现,咦,怎么多了条数据。 解决办法:只能严格的串行化执行。(并发程度最低,效率也最低,但是数据的可靠性最高)

    这里很容易搞混不可重复读和幻读。其实只需要理解,不可重复读是修改数据,数据的条数不变;幻读是增加或者删除数据,数据的内容不变,条数发生改变。

    mysql的隔离级别

    读未提交(read-uncommitted):会有脏读,不可重复读,幻读问题 不可重复读(read-committed):会有不可重复读,幻读问题 可重复读(repeatable-read):会有幻读问题 串行化 (serializable):解决这三个问题

    事务的隔离级别并不是越高越好,但事务的隔离级别越高,那么并发性就越低,效率越低,数据的可靠性就会越高。

    Mysql8开始,用SELECT@@GLOBAL.transaction_isolation,@@transaction_isolation;查询隔离级别(这里是是MySQL5)

    怎么理解MySQL事务

    这里我们可以看到MySQL的全局隔离级别和当前会话隔离级别皆是REPEATABLE一READ(可重复读),不同的数据库有不同的默认隔离级别,而且我们也可以自行修改它。

    通过如下命令可以修改隔离级别(建议在修改时修改当前 session 隔离级别即可,不用修改全局的隔离级别):

    SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

    注意,如果只是修改了当前 session 的隔离级别,则换一个 session 之后,隔离级别又会恢复到默认的隔离级别,所以我们测试时,修改当前 session 的隔离级别即可。

    怎么理解MySQL事务

    以上就是关于“怎么理解MySQL事务”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网数据库频道。

    您可能感兴趣的文档:

    --结束END--

    本文标题: 怎么理解MySQL事务

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

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

    猜你喜欢
    • 怎么理解MySQL事务
      这篇“怎么理解MySQL事务”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么理解MySQL事务”文章吧。事务指逻辑上的一组...
      99+
      2023-06-26
    • 怎么理解MySQL事务两段式提交
      本篇内容主要讲解“怎么理解MySQL事务两段式提交”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解MySQL事务两段式提交”吧!⒈两段式提交的目的:解决参...
      99+
      2024-04-02
    • 怎么理解MySQL的EVENT事件
      这篇文章主要介绍“怎么理解MySQL的EVENT事件”,在日常操作中,相信很多人在怎么理解MySQL的EVENT事件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解My...
      99+
      2024-04-02
    • 怎么理解Oracle事务
      本篇内容主要讲解“怎么理解Oracle事务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Oracle事务”吧!oracle事务1概述事务由一个或多个DM...
      99+
      2024-04-02
    • MySql事务处理怎么创建
      本篇内容主要讲解“MySql事务处理怎么创建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySql事务处理怎么创建”吧!#本文中我的用计算机的MYSQL数据库...
      99+
      2024-04-02
    • 怎么理解PostgreSQL事务管理
      本篇内容介绍了“怎么理解PostgreSQL事务管理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Th...
      99+
      2024-04-02
    • 怎么理解PostgreSQL事务管理中的子事务
      本篇内容主要讲解“怎么理解PostgreSQL事务管理中的子事务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解PostgreSQL事务管理中的子事务”吧...
      99+
      2024-04-02
    • MySQL中怎么进行事务管理
      在MySQL中,可以通过以下方式进行事务管理: 开启事务:使用START TRANSACTION语句或BEGIN语句开启一个新的...
      99+
      2024-04-09
      MySQL
    • 怎么理解oracle中的事务
      本篇内容主要讲解“怎么理解oracle中的事务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解oracle中的事务”吧! 一组...
      99+
      2024-04-02
    • MySQL事务(死记硬背+理解)
        ACID原则 ACID原则是数据库事务正常执行的四个基本原则,分别指:原子性、一致性、独立性及持久性。 1、事务的原子性(Atomicity):是指一个事务要么全部执行,要么都不执行,也就是说一个事务不可能只执行了一半就停止了。...
      99+
      2016-02-19
      MySQL事务(死记硬背+理解)
    • mysql事务管理操作详解
      本文实例讲述了mysql事务管理操作。分享给大家供大家参考,具体如下: 本文内容: 什么是事务管理 事务管理操作 回滚点 默认的事务管理 首发日期:2018-04-18 什么是事务管理: ...
      99+
      2022-05-23
      mysql 事务管理
    • 你理解MySQL中的事务吗
      本文主要给大家介绍MySQL中的事务,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL中的事务吧。一个示例:银行引用是事务的一个经典例子:假如...
      99+
      2024-04-02
    • 如何理解MySQL中的事务
      今天就跟大家聊聊有关如何理解MySQL中的事务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。事务又叫做TCL,全称是transaction cont...
      99+
      2024-04-02
    • MySQL 事务管理
        事务的4个特性(ACID) 原子性 Atomicity。每个事务中的操作,要么都成功,要么都失败 一致性 Consistency。事务执行前后,数据库中的数据应该保持一致 隔离性 Isolation。事务之间应该是隔离的,事...
      99+
      2015-09-09
      MySQL 事务管理
    • MySQL事务处理
      概述 在MySQL中只有使用了InnoDB数据库存储引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部成功,要么全部失败。 事务用来管理DDL、DML、DCL操作,比如:insert、...
      99+
      2014-12-03
      MySQL事务处理
    • Mysql事务原理
      一、什么是事务 事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元); 事务的四大特性: 原子性(Atom...
      99+
      2020-08-23
      Mysql事务原理
    • MySQL事务ACID原理深度解析
      什么是MySQL事务? 事务是指对数据库的一组操作的集合,集合中的SQL语句要么全部执行成功,要么就全部失败,如果集合中任一操作出错,则此集合所有对数据库的操作全部回滚。 以常见的购物操作举例,用户下单后要执行订单创建、减库存等一系列操...
      99+
      2018-05-21
      MySQL事务ACID原理深度解析
    • MySQL事务管理的作用详解
      目录1.为何使用事务管理2.数据库事务的原理3.什么是事务3.1 事务的特性ACID3.2 事务的并发问题3.3 隔离级别4.Spring事务管理1.为何使用事务管理 可以保证数据的完整性。事务(Transaction)...
      99+
      2024-04-02
    • mysql事务详解
      事务的特性(Atomicity) 原子性 -- 回滚日志 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这...
      99+
      2016-12-01
      mysql事务详解 数据库入门 数据库基础教程 数据库 mysql
    • mysql 事务解析
      事务(transaction) 事务是业务逻辑的一个基本的单元组成。 每一个事务由一条条sql语句组成。 和事务相关的语句(insert,delete,update)这些D...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作