《sql必知必会》——读书笔记(4)
时间:2022-07-25
本文章向大家介绍《sql必知必会》——读书笔记(4),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
模拟mysql 几种隔离级别
sql几种隔离级别的定义
准备数据库和数据表
模拟的时候我们需要开两个 MySQL 客户端,分别是客户端1 和客户端 2
在客户端 1 中,我们先来查看下当前会话的隔离级别,使用命令…
mysql> SHOW VARIABLES LIKE 'transaction_isolation'
mysql默认可重复读
改为read uncommited
mysql> SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
因为mysql 默认是自动提交事务的,
所以需要设置autocommit=0
mysql> SET autocommit = 0;
模拟脏读
新开一个mysql客户端2,开启一个事务,插入一个“吕布”
客户端2的设置仍然是默认的:
在客户端1中查询当前表:
发下客户端1读了客户端2还没有提交的事务数据,而客户端2也有可能立马回滚。
客户端1再次读表
模拟“不可重复读”
用客户端1查询id=1的数据
客户端2对id=1的进行修改
这时候,客户端1再读:
对于客户端1来说,发生了不可重复读。
模拟幻读
先用客户端1查询所有用户:
然后客户端2插入“吕布”
这时候再用客户端1查询,
发现多了一条数据,发生了幻读。
现在将客户度1的隔离级别设置为默认的不可重复读。
我们只用验证下幻读。
客户端1开启一个事务,进行查询所有英雄:
客户端2增加一个英雄赵云
此时还没有提交。 客户端1 再读(红框部分为第2次读):
说明,此时是不会发生 不可重复读 事件,换言之,是可重复读的。
我们在客户端2 中提交,
再次来到客户端1的事务中,发现仍然是读不到的。
,将客户端1的事务提交后,再次开启一个事务,进行查询可以查到。
mysql 5.7后 Repeatable-Read隔离级别通过MVCC和next-key lock来解决幻读。
同样,不可重复读也是如此
- React项目配置2(自己封装Ajax)
- React项目配置1(如何管理项目公共js方法)
- c++中stack、queue、vector的用法一、栈(stack)二、队列(queue)三、向量(vector)
- React技巧7(TodoList实现3组件之间传递数据之优化)
- React技巧6(TodoList实现2组件之间传递数据)
- POJ A Knight's Journey
- React技巧5(TodoList实现)
- 求一个数n次方后的末尾数(数论/快速幂)问题描述解题思路代码实现运行结果参考
- Catch That Cow
- React技巧4(如何处理List里面的Item)
- ZOJ 3620 Escape Time II
- React技巧3(如何优雅的渲染一个List)
- FZU 电动车通行证制度
- 贪心算法总结贪心算法基本思路算法实现实例分析参考
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法