iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么理解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://www.lsjlt.com/news/308788.html(转载时请注明来源链接)

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

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

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

    下载Word文档
    猜你喜欢
    • 怎么理解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
    • 如何理解MySQL中的事务
      今天就跟大家聊聊有关如何理解MySQL中的事务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。事务又叫做TCL,全称是transaction cont...
      99+
      2024-04-02
    • 怎么理解oracle中的事务
      本篇内容主要讲解“怎么理解oracle中的事务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解oracle中的事务”吧! 一组...
      99+
      2024-04-02
    • mysql 事务解析
      事务(transaction) 事务是业务逻辑的一个基本的单元组成。 每一个事务由一条条sql语句组成。 和事务相关的语句(insert,delete,update)这些D...
      99+
      2024-04-02
    • 【Mysql】mysql事务处理用法与实例详解
      来源:转载  代码如下 复制代码 root@host# mysql -u root -p pas...
      99+
      2024-04-02
    • mysql事务处理(转)
      mysql事务处理(转)[@more@]缺省的,MySQL 运行在 autocommit 模式。这就意味着,当你执行完一个更新时,MySQL 将立刻将更新存储到磁盘上。 如果你使用事务安全表 (例如 Inn...
      99+
      2024-04-02
    • mysql事务怎么实现
      MySQL事务可以通过以下几种方式来实现:1. 使用BEGIN、COMMIT和ROLLBACK语句:通过在事务开始时使用BEGIN语...
      99+
      2023-10-09
      mysql
    • 【mysql】事务的四种特性的理解
      🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘。 🛸Mysql专栏:Mys...
      99+
      2023-08-18
      mysql 数据库
    • MySql事务及ACID实现原理详解
      目录逻辑架构和存储引擎自动提交特殊操作ACID 特性原子性持久性隔离性脏读、不可重复读和幻读事务隔离级别MVCC一致性逻辑架构和存储引擎 自动提交 MySQL 中默认采用的是自动提...
      99+
      2024-04-02
    • [MySQL]事务ACID详解
      专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现...
      99+
      2023-09-01
      mysql 数据库 java
    • MySQL的事务详解
      ✨博客主页: 荣 ✨系列专栏: MySQL ✨一句短话: 难在坚持,贵在坚持,成在坚持! 文章目录 一. 事务的业务场景二. 事务的使用三. 事务的特性(ACID)1. 原子性(Atomicity)2. 一致性(Consistenc...
      99+
      2023-08-17
      mysql 数据库
    • java spring嵌套事务和事务传播类型怎么理解
      本篇内容主要讲解“java spring嵌套事务和事务传播类型怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java spring嵌套事务和事务传播类型怎么理解”吧!  一个有事务的方法...
      99+
      2023-06-02
    • MySQL数据库本地事务原理解析
      在经典的数据库理论里,本地事务具备四大特征: 原子性 事务中的所有操作都是以原子的方式执行的,要么全部成功,要么全部失败; 一致性 事务执行前后,所有的数据都应该处于一致性状态---...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作