首页 > 数据库 >MySQL——2、并发事务所带来的问题是什么?怎样去解决?MySQL的默认隔离级别是什么

MySQL——2、并发事务所带来的问题是什么?怎样去解决?MySQL的默认隔离级别是什么

时间:2024-05-26 18:59:16浏览次数:55  
标签:事务 no read 默认 查询 并发 MySQL yes 数据

一、并发事务所带来的问题

1、脏读:就是一个事务对数据进行查询操作时而另一个事物在修改这条数据但未提交,这时进行查询操作的事务就会读取到未提交的数据也就是脏数据

2、不可重复读:事务A查询一次数据接着事务B修改了数据并且已提交事务A继续执行操作查询数据读到了不一样的数据

3、幻读:事务执行查询数据时不存在,插入数据时却报错,再次查询时还是在。原因在于事务A查询的时候数据库确实没有对应索引的数据但之后事务B却进行了插入操作,事务A再次查询时还是查不到(这是因为我们已经实现了可重复读)

二、怎样去解决

对事务进行隔离

隔离级别        脏读        不可重复度        幻读

————————————————————

读取未提交

read uncommit   yes        yes        yes

————————————————————

读取已提交

read commit        no        yes        yes

————————————————————

可重复读

repeatable read no        no        yes

————————————————————

串行化

serializable        no        no        no

————————————————————

从上往下性能递减,功能递增

三、MySQL的默认隔离级别

可重复读(repeatable read)原因在于串行化虽然能解决事务并发的所有问题,但关键在于串行化会导致只有一个事务执行完成后才能继续其他事务的执行也就没有并发这一说了,效率非常低。

标签:事务,no,read,默认,查询,并发,MySQL,yes,数据
From: https://blog.csdn.net/Lemon_man_/article/details/139218679

相关文章

  • 【Python并发编程指南】多线程、多进程与异步编程比较与选择
    ......
  • java —— 连接 MySQL 操作
    MySQL是独立于java之外的数据库,二者之间建立连接需要提前引入mysql-connector-java的jar包。一、引入方法:①在项目中新建一个Folder(即文件夹),该文件夹通常命名为lib,意思是存放项目所依赖的第三方库或外部的jar文件。②将 mysql-connector-java的jar包复制进......
  • MYSQL满足条件函数里放查询最大函数的方法
    1.MYSQL满足条件函数里放查询最大函数的方法在MySQL中,如果我们想要在一个条件函数(如CASE)内部使用聚合函数(如MAX)来获取某个字段的最大值,我们通常需要在外部查询或子查询中执行这个聚合操作,并将结果作为参数传递给条件函数。以下是一个具体的代码示例,假设我们有一个名为sales的表,......
  • MySQL如何查询某个字段含有字母数字的值
    在MySQL中,要查询某个字段含有字母和数字的值,可以使用正则表达式配合REGEXP操作符。以下是一个详细的示例,说明如何编写这样的查询。假设我们有一个名为my_table的表,其中有一个名为my_column的字段,我们想要查询这个字段中含有字母和数字的值。1.使用正则表达式正则表达式[a-zA-Z0......
  • javaSwing+JDBC+mysql校园跑管理项目(附源码下载)
    1.数据准备DELETEFROMstudents;Deletefromrunning;INSERTINTOstudents(student_id,name,age,major,grade)VALUES(1,'王小明',20,'计算机科学与技术','男'),(2,'张小红',21,'软件工程','女'),(3......
  • docker下安装mysql,并实现主从复制
    1mysql的安装与启动1.1拉取mysql5.7的镜像dockerpullmysql:5.71.2运行dockerrun:运行Docker容器的命令。--restart=always:指定容器在退出时总是重新启动。这意味着,无论容器是正常退出还是异常退出,Docker将自动重新启动这个容器。--privileged=true:......
  • 成为MySQL DBA后,再看ORACLE数据库(一、安装与启动)
    一、前言ORACLE作为世界上最牛逼的关系型数据库,也是我从事数据库行业入门学习的数据库,记得当时学习ORACLE数据库时就深感其复杂性,对很多概念一知半解、似懂非懂,当ORACLE管理员期间也遇到过不少问题,不过好在有ORACLE原厂工程师驻场,基本上问题都能解决。后来因为领导的安排和工作的......
  • Netty_Redis_Zookeeper高并发实战-读书笔记
    转载自:https://www.cnblogs.com/leihongzhi/p/17381156.html 第1章    高并发时代的必备技能1.nettyNetty是JBOSS提供的一个Java开源框架,基于NIO的客户端/服务器编程框架,能够快速开发高并发、高可用、高可靠的网络服务器程序,也能开发高可用、高可靠的客户端程序。NIO是......
  • MySQL-存储引擎
    MySQL体系结构1).连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。2).服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行......
  • Mysql-约束
    约束概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性。约束演示:外键约束左侧的emp表是员工表,里面存储员工的基本信息,包含员工的ID、姓名、年龄、职位、薪资、入职日期、上级主管ID、部门ID,在员......