mysql数据库事务脏读、不可重复度、幻读详解

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: mysql数据库事务脏读、不可重复度、幻读详解

@[TOC]

1 事务隔离级别

  • read-uncommitted:脏读、不可重复度、幻读,均可出现。安全性低,性能高。
  • read-committed(oracle默认):不可重复度、幻读。避免了脏读。
  • repeatable-read(mysql默认):幻读。避免了脏读、不可重复度。
  • serializable:避免了脏读、不可重复度、幻读。安全性高,性能低。

    2 脏读

    开启两个窗口:
  • 查询事务默认的隔离级别
    select @@transaction_isolation;
    
  • 设置隔离级别为read-uncommitted
    set session transaction isolation level read uncommitted;
    
    在这里插入图片描述
    • 开启事务
      start transaction;
      
      在这里插入图片描述
    • 脏读就是读到了其他事务,未提交的数据。read-uncommitted
    • 查询数据的时候会有错误。

      3 不可重复度

    • 设置事务隔离级别为read-committed
      set session transaction isolation level read committed;
      

      3.1 解决了脏读的问题。

      在这里插入图片描述

      3.2 有不可重复度的问题

      在这里插入图片描述

      4 幻读

    • 设置隔离级别
      set session transaction isolation level repeatable read;
      

      4.1 没有脏读和不可重复读的问题

      在这里插入图片描述

      4.2 有幻读的问题

      在这里插入图片描述

      5 serializable

      设置事务隔离级别为serializable,脏读、不可重复读、幻读的问题都不存在,但是性能最低。
      set session transaction isolation level serializable;
      
      串行化:事务并发时,A事务提交后,B事务才能提交。
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
29天前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
26天前
|
存储 SQL 关系型数据库
MySQL的事务隔离级别
【10月更文挑战第17天】MySQL的事务隔离级别
97 43
|
22天前
|
数据库
什么是数据库的事务隔离级别,有什么作用
【10月更文挑战第21】什么是数据库的事务隔离级别,有什么作用
12 3
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1630 14
|
22天前
|
存储 关系型数据库 数据挖掘
什么是数据库的事务隔离级别
【10月更文挑战第21】什么是数据库的事务隔离级别
16 1
|
28天前
|
存储 数据库 数据库管理
数据库事务安全性控制如何实现呢
【10月更文挑战第15天】数据库事务安全性控制如何实现呢
|
28天前
|
存储 数据库 数据库管理
什么是数据库事务安全性控制
【10月更文挑战第15天】什么是数据库事务安全性控制
|
28天前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗
|
28天前
|
存储 关系型数据库 MySQL
数据库的事务控制
【10月更文挑战第15天】数据库的事务控制
23 2
|
28天前
|
SQL 关系型数据库 数据库
如何在数据库中实现事务控制呢
【10月更文挑战第15天】如何在数据库中实现事务控制呢
15 1