MySQL事务隔离级别实战演示
2021/11/2 19:10:03
本文主要是介绍MySQL事务隔离级别实战演示,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 1 问题背景
- 2 前言
- 3 实战环境
- 4 必备知识
- 5 读未提交实战
- 6 读已提交实战
- 7 可重复读实战
- 8 串行化实战
1 问题背景
前面了解了MySQL官方解释的MySQL事务,详情看MySQL事务以及隔离级别官方解释。今天写写sql实战了解隔离级别会发生什么现象
2 前言
网上一大堆都只是停留在文字描述(读已提交会产生xxx,可重复读可避免xxx),本篇博客旨在使用sql实战解释清楚四个隔离级别到底是怎么样的。本文仅使用update、select做实战操作。(delete操作应该会有更复杂的现象。笔者经常遇到删除操作的业务方法报
MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
异常)
3 实战环境
工具:MySQL8.0、Navicat。
表:设计了一个表做实战,如下所示:.
CREATE TABLE `t_product` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '商品名', `quantity` int DEFAULT NULL COMMENT '数量', `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
数据:往表里插入一条数据,如下所示:
insert into t_product (name, quantity) values ("MYSQL事务实战", 100);
4 必备知识
MySQL设置数据库隔离级别
5 读未提交实战
实战背景,模拟两个并发的事务,在一个事务中做update操作,在另一个事务做查询操作,看看有什么现象。实战过程中需要开启两个MySQL命令窗口,各自代表一个事务。在此称窗口A、窗口B,方便后文描述。窗口A的事务称为事务A,窗口B的事务称为事务B。
6 读已提交实战
7 可重复读实战
8 串行化实战
这篇关于MySQL事务隔离级别实战演示的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20MySQL集群部署教程:入门级详解
- 2024-11-20MySQL集群教程:入门与实践指南
- 2024-11-20部署MySQL集群教程:新手入门指南
- 2024-11-20MySQL读写分离教程:轻松入门
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程
- 2024-11-19如何部署MySQL集群:新手入门教程
- 2024-11-19Mysql安装教程:新手必看的详细安装指南
- 2024-11-18Mysql安装入门:新手必读指南
- 2024-11-18MySQL事务MVCC原理入门详解