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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
TDengine (老段)9 分钟前
TDengine 函数完整参考 — 聚合、时序、字符串、时间、数学
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
浩瀚地学28 分钟前
【面试算法笔记】0302-哈希表-哈希表实现
java·经验分享·笔记·算法·面试
TDengine (老段)1 小时前
昆仑数智选择 TDengine TSDB,提升页岩气生产运行可视化与精细化管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
陆水A1 小时前
【问数系统】SQL跑对了图表却空了?打通问数系统最后1公里的3个API坑
大数据·数据库·自然语言处理·big data·etl工程师
海外数字观察家1 小时前
品未云:泰国华商批发零售一体化 ERP,破解本土软件适配难题|CSDN 技术分享
网络·数据库·人工智能
万亿少女的梦1682 小时前
基于Spring Boot、Vue与MySQL的高校实习信息管理系统设计与实现
spring boot·mysql·vue·权限管理·restful api
躺不平的理查德2 小时前
SQLite C API 备忘录
c语言·数据库·sqlite
用户852495071842 小时前
Document 切分:RAG 知识库的第一道关键工序
面试
陳陈陳2 小时前
LLM的"消化系统":一文讲透RAG文档加载与智能切割
数据库·langchain·llm
IvorySQL2 小时前
云环境下PostgreSQL的Cgroup内存管理实践
java·数据库·postgresql