MySql数据引擎InnoDB引起的锁问题

一、并发事务处理带来问题

通常情况下,采用并发操作可以很大程度上有效利用好数据库资源,并提高数据库访问吞吐率,但是既然是并发,那就很有可能会出现各种事务问题:

更新丢失:当多个事务操作同一行数据的时候,当前事务跟新完的数据会覆盖上一个事务的更新,而且事务之间是互相隔离的,彼此都不知道他们之间的存在,所以这种情况下就很有可能出现数据丢失的问题。

脏读:一个事务还在对数据进行修改,但是还未更新到数据库,这个时候另外一个事务也来读取这些数据,由于第一个事务跟新的数据还没有提交到数据库,所以第二个事务读取的数据实际上就是脏数据。

不可重复读:事物A读取完数据D后,另一个事务B对这些数据进行了修改,这个时候第一个事务需要再次读取这个数据D,这个时候就会发现两次读取的数据D不一样。

幻读:事务A通过查询条件查询到对应数据后,这个时候事务B对这快数据进行了插入或者删除,此时事务A再次通过相同的查询条件查询数据,发现两次查询的数据不一样,就给了一种出现幻觉的感觉。

二、不可重复读和幻读的区别

不可重复读着重强调了事务A读取了事务B编辑后的数据,导致事务A在事务B之前读取的数据和事务B后读取的数据不一样

幻读着重强调的意思主要在于事务A通过查询条件查询了数据后,事务B通过插入或者删除的操作修改数据,导致事务A再次通过相同的条件读取数据的时候发现两次读取的数据量不一样

下期将介绍这些并发事务引起的问题的解决办法~

当然,从本期开始读者可以在评论区留言,写下自己希望在下期学到的知识,我将在评论区整理问题并在下期进行一一解答~

相关推荐
鹿角片ljp2 分钟前
动态SQL实现模糊查询
数据库·sql·oracle
晓风残月淡3 分钟前
mysql备份恢复工具Percona XtraBackup使用教程
数据库·mysql
DomDanrtsey5 分钟前
oracle所有表中文与字段最大长度检测
数据库·oracle
Z...........10 分钟前
数据库表设计
数据库
tudficdew14 分钟前
使用Python操作文件和目录(os, pathlib, shutil)
jvm·数据库·python
浒畔居16 分钟前
工具、测试与部署
jvm·数据库·python
云和数据.ChenGuang17 分钟前
python对接mysql和模型类的故障
数据库·python·mysql·oracle·conda·virtualenv
2301_8223827619 分钟前
开发一个简单的Python计算器
jvm·数据库·python
2501_9209992722 分钟前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
_F_y26 分钟前
MySQL用户管理
android·mysql·adb