首页 > 数据库 >Mysql事务

Mysql事务

时间:2023-07-24 22:56:55浏览次数:29  
标签:事务 隔离 READ account 提交 Mysql 2.1

1. 事务

1.1. 基本特性ACID

  • 原子性Atomicity
  • 一致性Consistency
  • 隔离性Isolation
  • 持久性Durability

 

1.2. 隔离级别

  • READ UNCOMMITTED(读未提交)
  • READ COMMITTED(读已提交)
  • REPEATABLE READ(可重复读)
  • SERIALIZABLE(串行化)

1.2.1. 查看隔离级别

show variables like 'transaction_isolation';
-- 或者
select @@transaction_isolation;

 

1.2.2. 修改全局隔离级别

SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ;

 

1.3. 事务提交

1.3.1. 查看事务自动提交状态

SHOW VARIABLES LIKE 'autocommit';

 

1.3.2. 修改事务自动提交状态

SET autocommit = 0|1|ON|OFF;

1.4. 不同隔离级别的后果

  • 脏读
  • 不可重复读
  • 幻读

隔离级别 \ 后果

脏读

不可重复读

幻读

读未提交

读已提交

不会

可重复读

不会

不会

串行化

 

2. 不同隔离级别演示

2.1. READ UNCOMMITTED

脏读:读到其他事务未提交的数据

2.1.1. 隔离级别

 

2.1.2. 事务一:查询account数据

事务一开启

 

2.1.3. 事务二:更新账户信息

事务二开启

⚠️事务二未提交

 

2.1.4. 事务一:查询account数据

 

2.1.5. 事务二:回滚事务

 

2.1.6. 事务一:查询account数据

 

2.2. READ COMMITTED

不可重复读:同一个事务中,两次读到的数据不一致

2.2.1. 隔离级别

 

2.2.2. 事务一:查询account数据

事务一开启

 

2.2.3. 事务二:更新账户信息

事务二开启

 

2.2.4. 事务二:提交事务

事务二提交

 

2.2.5. 事务一:查询account数据

事务一中两次查询到的数据不一致

 

2.3. REPEATABLE READ

幻读:同一个事务中,查询到没有数据却无法插入数据

 

2.3.1. 隔离级别

 

2.3.2. 事务一:查询account数据

事务一开启

 

2.3.3. 事务二:插入账户信息

事务二开启

事务二结束

 

2.3.4. 事务一:查询account数据

 

2.3.5. 事务一:插入账户信息

插入数据失败,查询account表中id=3的数据为空,此信息为幻读。

 

 

 

 

 

 

 

 

标签:事务,隔离,READ,account,提交,Mysql,2.1
From: https://www.cnblogs.com/spike007blogs/p/17578570.html

相关文章

  • mysql索引
    一、索引1.1.索引的数据结构1.1.1.索引的优缺点索引是帮助mysql高效获取数据的数据结构。优点降低数据库的IO成本,提升数据检索的效率。创建唯一索引,可以保证数据的唯一性。可以加速表和表的连接,对于有依赖关系的字表和父表联合查询时,可以提升查询效率。减少查询中......
  • 实例详解 EJB 中的六大事务传播属性
    前言事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务可以是一条或一组SQL语句,甚至整个程序。它有通常被称为ACID的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)四大特性:原子性(Atomicity):......
  • mysql在liunx下面的自动备份
    由于系统基本开发完成,为了保证数据安全,需要将数据库自动备份,以下是实现自动备份的步骤:一、在本地自动备份数据库1.使用mysql自带的服务mysqldump实现自动备份,首先使用vim命令编辑以下命令并且保存#!/bin/bashDB_USER='***'DB_PASSWORD='*******'DB_NAME='**......
  • Linux安装mysql 02
    1:新建目录: 2:下载Mysql数据库文件:wgethttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar:3:安装数据库文件解压文件tar-xvfmysql-5.7.39-1.el7.x86_64.rpm-bundle.tar yum-yinstallmysql-comm*.rpm 按照......
  • Mysql高级1-存储引擎
    一、Mysql体系结构 1.1、连接层最上层是一个客户端和链接服务,主要完成一些类似于链接处理,授权认证,及相关的安全方案,服务器也会为安全接入的而每个客户端验证它所具有的操作权限1.2、服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完......
  • Qt mingw73_32 + MySql8.0 使用和对数据库操作 - 初窥篇1
    1、开发环境QtCreator4.8.2+Qt5.12.2+MySql8.0.332、设计背景现在已经有MySql8.0.33是64位的数据库,仅支持64位的程序,但是当前Qt程序编译环境是mingw73_3232位程序连接64位的数据库实例3、操作流程1)测试驱动代码+测试结果intmain(inta......
  • Navicat连接Mysql出现“plugin 'caching_sha_password' cannot be loaded”错误
    Navicat连接Mysql出现“plugin'caching_sha_password'cannotbeloaded”错误问题现场​​**官方说明:**​https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html解决方案使用本地mysql命令行登录;mysql-uroot-p先查一下看看--使用......
  • 如何发现及处理 MySQL 主从延迟问题
    在PerconaMySQL支持团队中,我们经常看到客户抱怨复制延迟的问题。当然,这对MySQL用户来说并不是什么新鲜事,多年来我们在MySQL性能博客上发表过一些关于这个主题的文章(过去有两篇特别受欢迎的文章:"ReasonsforMySQLReplicationLag"和“ManagingSlaveLagwithMySQLRep......
  • Spring中propagation的7种事务配置及说明
     http://www.zhano.cn/index.php/Java/40878.html Springpropagation7种事务配置1、简述在声明式的事务处理中,要配置一个切面,其中就用到了propagation,表示打算对这些方法怎么使用事务,是用还是不用,其中propagation有七种配置,REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、......
  • 使用mysqldump备份数据库时报错表不存在,提示信息Table 'mysql.engine_cost' doesn't e
    问题描述:使用mysqldump备份数据库时报错表不存在,提示信息Table'mysql.engine_cost'doesn'texist,如下所示:数据库:mysql5.7.211、异常重现[mysql@hisdb1~]$mysqldump-uroot-S/mysql/data/mysql.sock-P3306--max_allowed_packet=1G--master-data=2--single-transaction......