千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:武汉千锋IT培训  >  技术干货  >  既然MySQL有事物隔离性,那为什么还会产生脏读?

既然MySQL有事物隔离性,那为什么还会产生脏读?

来源:千锋教育
发布人:xqq
时间: 2023-10-15 19:34:29

一、既然MySQL有事物隔离性,那为什么还会产生脏读

这个事情不能简单的一概而论,还得结合锁和MVCC相关的知识来分析

一个select操作:

如果不加锁(普通的select等),称为快照读,读取的是MVCC版本链里的快照版本(至于读哪一版本的数据,就得看隔离级别了)

如果加了锁(如select for update等),称为当前读,读取的是最新版本(也就是别的事务提交的版本)

所以这样就很清晰了:

在事务隔离级别为读未提交的情况下,事务B读取到的可能是事务A未提交的存在于版本链里的数据,这样就是脏读了。

有人可能是数据不是加锁了吗,为啥还能读?我读取的是版本链里的数据,你加锁是加在最新落库的数据表里的表记录,跟我有什么关系?

所以最终结果就很清楚了,并不是一级封锁协议不能避免度脏数据,想下面这两周情况就不会发生脏读:

1)在非读未提交(读已提交、可重复读、串行化)隔离别下,不会出现脏读

2)在select加锁的情况下,不管什么级别,也不会出现脏读

延伸阅读:

二、Navicat是什么

Navicat是一套快速、可靠和全面的数据库管理工具,专门用于简化数据库管理和降低管理成本。Navicat图形界面直观,提供简便的管理方法,设计和操作MySQL、MariaDB、SQL Server、Oracle、PostgreSQL和SQLite的数据。

Navicat提供一个直观和设计完善的用户界面,用于创建、修改和管理资料库的所有对象,例如表、视图、函数或过程、索引、触发器和序列。我们的表设计器帮助用户创建和修改数据库的表,让设置高级选项,如关系、限制、触发器和更多。

使用Navicat浏览和修改数据,插入、编辑、删除数据或复制和粘贴记录到数据表形式的数据编辑器,Navicat将运行相应的命令(例如INSERT或UPDATE),免除写复杂的SQL。广泛的数据编辑工具令编辑工作更为方便,例如外键查找、set/enum选择器和记录筛选。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

PSC文件是什么文件,要用什么软件打开?

2023-10-15

怎么向VFP数据表中一次加入多条记录?

2023-10-15

access数据库中的round函数是什么意思?

2023-10-15

最新文章NEW

定制开发app有哪些优势?

2023-10-15

删除SQL server2012出现重新启动计算机――失败,是什么原因?

2023-10-15

怎样建立一个数据库,然后利用C语言调用数据库的数据来进行运算得到运算结果?

2023-10-15

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>