mysql 详解隔离级别操作过程(cmd)

发布时间 - 2026-01-10 22:43:04    点击率:

读未提交示例操作过程-Read uncommitted

1、打开两个MySql的命令提示行,均进入相同数据库,并检查当前表内容为相同数据如下:

2、在A、B两端执行select @@tx_isolation;检查当前默认的隔离级别别,可以发现都是

Repeatable Read –可重复读-(在当前事务内,重复读取第一次读取过的数据就叫可重复读。)

3、修改A端的隔离级别为readuncommitted –读未提交。意思是可以读取别人没有提交的数据。

set transactionisolation level read uncommitted;

在绿色的MySql5.5上请执行:

Set sessiontransaction isolation level read uncommitted;

   然后再查看是否已经发生改变:

4、在A、B两端都开启事务

starttransaction;

5、在B端修改一行数据如:

update stud setname='Jhon' where id=1;

   其后在A端执行查询:select * from stud;

6、此时B端再次执行回滚操作

Rollback;

   再在A端进行查询,结果发现数据又回到了之前的数据。这就是脏读

7、对于B端写入的新数据,如果没有提交A端也一样能查询到,这叫幻读

 读已提交操作过程:-read COMMITTED

1、 检查A、B两端是否一致:

2、修改A端(左)的隔离级别为readcommitted;

set transactionisolation level read committed;

   在A端开启事务:

   starttransaction;

   在B端开启事务

3、在A端进行查询:

Select * fromstud;

在B端修改一行记录并提交

Update stud setname='itcast' where id=1;

再回到A端进行查询,发现在同一个事务内,两次查询的结果不一样:

 可重复读示例Repeatable Read

1、查看A端的隔离级别是否为Repeatableread级别:

Select@@tx_isolation;

2、先在A端在开启的事务内进行查询。

然后在B端修改数据库的内容。

最后再在A端的同一事务内进行查询,发现结果一致。

 Serializable是最高级的隔离级别

1、在A端设置隔离级别为Serializable

set transactionisolation level serializable;

在A端开启一个事务-并对stud表进行查询。

在B端开启一个事务,并写入一行记录。此时发现B的代码并没有执行,因为它在等A提交之后它才执行。

类似于线程同步的概念

 这四种隔离级别采取不同的锁类型来实现,若读取的是同一个数据的话,就容易发生问题。例如:

脏读(Drity Read):某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack(回滚)了操作,则后一个事务所读取的数据就会是不正确的。

不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。

幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# mysql  # 隔离  # 详解隔离级别操作过程  # 隔离级别操作过程  # 深入理解Mysql的四种隔离级别  # MySQL中Innodb的事务隔离级别和锁的关系的讲解教程  # MySQL 四种事务隔离级别详解及对比  # MySQL四种事务隔离级别详解  # MySQL数据库事务隔离级别介绍(Transaction Isolation Level)  # mysql、oracle默认事务隔离级别的说明  # 详解MySQL中事务隔离级别的实现原理  # MySQL数据库事务隔离级别详解  # 通过实例分析MySQL中的四种事务隔离级别  # MySQL事务的隔离级别详情  # 如何修改mysql的隔离级别  # 两次  # 就会  # 先前  # 操作过程  # 的是  # 都是  # 这就是  # 希望能  # 如果没有  # 然后再  # 却在  # 并对  # 它在  # 谢谢大家  # 就叫  # 来实现  # 类似于  # 这可  # 先在  # 不正确 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 手机网站制作与建设方案,手机网站如何建设?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  ,南京靠谱的征婚网站?  如何用VPS主机快速搭建个人网站?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  python中快速进行多个字符替换的方法小结  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  jQuery validate插件功能与用法详解  如何用AWS免费套餐快速搭建高效网站?  潮流网站制作头像软件下载,适合母子的网名有哪些?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  javascript如何操作浏览器历史记录_怎样实现无刷新导航  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  简单实现Android验证码  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  Mybatis 中的insertOrUpdate操作  香港服务器租用费用高吗?如何避免常见误区?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何正确选择百度移动适配建站域名?  nginx修改上传文件大小限制的方法  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  linux写shell需要注意的问题(必看)  南京网站制作费用,南京远驱官方网站?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  网站图片在线制作软件,怎么在图片上做链接?  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  ,怎么在广州志愿者网站注册?  Firefox Developer Edition开发者版本入口  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  网站建设整体流程解析,建站其实很容易!  如何在景安服务器上快速搭建个人网站?  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何在云服务器上快速搭建个人网站?  C语言设计一个闪闪的圣诞树  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Windows Hello人脸识别突然无法使用  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】