返回顶部
首页 > 资讯 > 数据库 >MySQL中怎么判定隔离级别
  • 615
分享到

MySQL中怎么判定隔离级别

2024-04-02 19:04:59 615人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关Mysql中怎么判定隔离级别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  ACID的特性  1.原子性(Atomicity)  事务

这期内容当中小编将会给大家带来有关Mysql中怎么判定隔离级别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

  ACID的特性

  1.原子性(Atomicity)

  事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用回滚日志来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。

  2.一致性(Consistency)

  一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

  拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。

  3.隔离性(Isolation)

  隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

  即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。

  4.持久性(Durability)

  持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

  并发一致性问题

  1.脏读

  脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。

  T1 修改一个数据,T2 随后读取这个数据。如果 T1 撤销了这次修改,那么 T2 读取的数据是脏数据。

  2.不可重复读

  不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。

  例如事务T1在读取某一数据,而事务T2立马修改了这个数据并且提交事务给数据库,事务T1再次读取该数据就得到了不同的结果,发送了不可重复读。

  不可重复读和脏读的区别是,脏读是某一事务读取了另一个事务未提交的脏数据,而不可重复读则是读取了前一事务提交的数据。

  3.幻读

  幻读是事务非独立执行时发生的一种现象。例如事务T1对一个表中所有的行的某个数据项做了从“1”修改为“2”的操作,这时事务T2又对这个表中插入了一行数据项,而这个数据项的数值还是为“1”并且提交给数据库。而操作事务T1的用户如果再查看刚刚修改的数据,会发现还有一行没有修改,其实这行是从事务T2中添加的,就好像产生幻觉一样,这就是发生了幻读。

  幻读和不可重复读都是读取了另一条已经提交的事务(这点就脏读不同),所不同的是不可重复读查询的都是同一个数据项,而幻读针对的是一批数据整体(比如数据的个数)。

  T1 读取某个范围的数据,T2 在这个范围内插入新的数据,T1 再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。

  MySQL隔离级别

  1. Serializable (串行化):强制事务串行执行。

  可避免脏读、不可重复读、幻读的发生。

  2. Repeatable read (可重复读):保证在同一个事务中多次读取同样数据的结果是一样的

  可避免脏读、不可重复读的发生。

  3. Read committed (读已提交):一个事务只能读取已经提交的事务所做的修改

  可避免脏读的发生。

  4. Read uncommitted (读未提交):事务中的修改,即使没有提交,对其他事务也是可见的

  最低级别,任何情况都无法保证。

  隔离级别最高的是Serializable级别,最低的是Read uncommitted级别,级别越高,执行效率就越低。

  像Serializable这样的级别,就是以表的方式(类似于Java多线程中的锁)使得其他的线程只能在锁外等待,所以平时选用何种隔离级别应该根据实际情况。

  在mysql数据库中默认的隔离级别为Repeatable read (可重复读)。

  oracle数据库中,只支持 Serializable (串行化) 级别和 Read committed (读已提交) 这两种级别,其中默认的为Read committed级别。

上述就是小编为大家分享的Mysql中怎么判定隔离级别了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中怎么判定隔离级别

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

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

猜你喜欢
  • MySQL中怎么判定隔离级别
    这期内容当中小编将会给大家带来有关MySQL中怎么判定隔离级别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  ACID的特性  1.原子性(Atomicity)  事务...
    99+
    2024-04-02
  • 【MySQL】事务及其隔离性/隔离级别
    需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云-->阿里云-->华为云 show variables like 'autocommit';+---------------+-------+| Variable_name...
    99+
    2023-09-01
    mysql 数据库
  • MySQL事务隔离级别
      四类隔离级别    SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。  Read Unc...
    99+
    2024-04-02
  • mysql设置隔离级别
    四个隔离级别READ-UNCOMMITTED  读未提交READ-COMMITTED    读已提交REPEATABLE-READ &n...
    99+
    2024-04-02
  • mysql中有哪些隔离级别
    本篇文章为大家展示了mysql中有哪些隔离级别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、read uncommitted(RU):是不允许发生脏写的不可能两个事务在没提交的情况下去更新同一行...
    99+
    2023-06-15
  • 怎么在mysql中修改事务隔离级别
    本篇文章为大家展示了怎么在mysql中修改事务隔离级别,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、说明MySQL提供了SET TRANSACTION 语句,可以改变单个会话或全局的事务隔离级别...
    99+
    2023-06-15
  • MySQL中四种隔离级别分别是什么
    这篇文章给大家分享的是有关MySQL中四种隔离级别分别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。事务的隔离性比想象的要复杂,在 SQL 标准中定义了四种级别的隔离级别。...
    99+
    2024-04-02
  • MySQL中有哪四种隔离级别
    这篇文章将为大家详细讲解有关MySQL中有哪四种隔离级别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 什么是事务事务是应用程序中一系列严密的操作...
    99+
    2024-04-02
  • MySQL 事务的隔离级别
    1. 事务的ACID 事务的ACID是指事务拥有的4个特性的首字母组合:atomicity(原子性), consistency(一致性), isolation(隔离性)和durability(持久性)。 ①atomicity(原子...
    99+
    2019-01-27
    MySQL 事务的隔离级别
  • MySQL的事务隔离级别
    目录数据库事务的四大特性⑴ 原子性(Atomicity)⑵ 一致性(Consistency)⑶ 隔离性(Isolation)⑷ 持久性(Durability)SQL的4种隔离级别Read Uncommitted(读取未提交内容)R...
    99+
    2021-07-07
    MySQL的事务隔离级别
  • mysql 命令行 隔离级别
          select @@autocommit; -- 查询自动提交 set autocommit=0; -- 关闭自动提交0 1开启 select @@tx_isolation; -- 查询隔离级别 set session trans...
    99+
    2018-06-04
    mysql 命令行 隔离级别 数据库入门 数据库基础教程 数据库 mysql
  • mysql的隔离级别介绍
    这期内容当中的小编将会给大家带来有关mysql的隔离级别介绍,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mysql的四种隔离级别事务指定一个隔离级别,该隔离级别定义一个事务必须与由其...
    99+
    2024-04-02
  • mysql事务隔离的级别
    这篇文章主要介绍“mysql事务隔离的级别”,在日常操作中,相信很多人在mysql事务隔离的级别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql事务隔离的级别”的疑惑...
    99+
    2024-04-02
  • Mysql有哪些隔离级别
    今天就跟大家聊聊有关Mysql有哪些隔离级别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  什么是事务  事务是应用程序中一系列严密的操作,所有操...
    99+
    2024-04-02
  • MySQL隔离级别有哪些
    这篇文章将为大家详细讲解有关MySQL隔离级别有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。业务的特性  业务是有四个特性(ACID)的,分别是原子性...
    99+
    2024-04-02
  • MySQL中的事务隔离级别是什么
    MySQL中的事务隔离级别包括四种:READ UNCOMMITTED(读未提交)、READ COMMITTED(读已提交)、REPE...
    99+
    2024-04-09
    MySQL
  • mysql在项目中怎么选事务隔离级别
    引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:“讲讲mysql有几个事务隔离级别?” 你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读” 面试官:“为什么mysql选可重复读作为默...
    99+
    2022-05-27
    mysql 事务隔离级别
  • 怎么在mysql中实现事务的隔离级别
    这篇文章给大家介绍怎么在mysql中实现事务的隔离级别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。事务就是一组一起成功或一起失败的sql语句。事务还应该具备,原子性,一致性,隔离性和...
    99+
    2024-04-02
  • MySQL innodb怎么设置事务隔离级别
    要设置MySQL InnoDB的事务隔离级别,可以使用以下步骤:1. 打开MySQL配置文件(通常位于/etc/my.cnf或/et...
    99+
    2023-10-09
    MySQL
  • mysql中的4种隔离级别分别是什么
    这篇文章主要讲解了“mysql中的4种隔离级别分别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中的4种隔离级别分别是什么”吧!1、读未提交,即所有事务都能看到其他未提交事务...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作