当前位置: 首页 > news >正文

MySQL锁机制和事务管理:如何处理并发和隔离性

引言

在数据库系统中,多个用户可能同时访问和修改数据,这就是并发操作。并发操作的主要优势在于,它显著提高了资源的利用率和事务的吞吐量。然而,如果不适当的管理并发操作,就会引发一些问题。以下几种并发操作中常见的问题:

 
  1. 丢失修改:这是某一事务的更新被另一事务的更新覆盖。例如,两位银行职员同时对同一个账户做修改,基于他们看到的同一初始值,最后只有一个职员的修改被保存,另一位职员的修改就会丢失。

  2. 不一致读:这是一个事务读取了另一个事务改变但未提交的数据。例如,一个事务正在将一个产品数量减少,而另一个事务同时读取了这个产品的数量。如果第一个事务后来因为某种原因回滚并取消修改,第二个事务得到的将是不正确的产品数量。

  3. 脏读:这是一个事务读取了另一个未提交事务的数据。例如,一项事务读取了另一项事务改变但尚未提交的数据。如果这个改变的数据后来被回滚,那么之前读到的数据就是错误的。

  4. 幻读:这是一个事务在读取几行数据后,另一个并发事务插入了一些行,然后第一个事务再次读取时,显得仿佛有些记录凭空出现。例如,一个财务报表事务在生成报告时,另一个事务添加了一条新的销售记录,那么报告中就会多了一条看似从未存在的新记录。

 

并发控制就是一种保证并发操作正确性的机制,它阻止了以上提到的问题,使得多个事务可以并发执行,而不会互相干扰。

 事务的定义和特性

事务的概念原始于数据库领域,表示执行一系列操作的程序执行单元。在事务中,这系列的操作要么全部执行,要么全部不执行。关于事务的主要特性,常以ACID四个字母来概括,分别代表原子性,一致性,隔离性和持久性。

 
  1. 原子性(Atomic):原子性意味着事务包含的所有操作要么全部成功,要么全部失败回滚,这和原子的概念是一样的,要么全部在,要么全部不在,不能只有部分存在。比如银行转账,从账户A向账户B转50元钱,这涉及到两个操作:从账户A减去50元,以及向账户B加上50元。这两个操作要么一起成功,要么一起失败。

  2. 一致性(Consistent):一致性指的是只有合法的数据可以被写

http://www.lryc.cn/news/372504.html

相关文章:

  • 特别名词Test Paper7
  • 2的n次方表格
  • EVS9329-ES驱动器EVS9329ES可议价
  • JSON、yam|fIProperties
  • 关于投标中的合理均价基准差径靶心法(KIMI回答)
  • 好久没写文章
  • 卡塔尔.巴林:海外媒体投放-宣发.发稿效果显著提高
  • 【成品设计】基于STM32的单相瞬时值反馈逆变器
  • 浏览器实时播放摄像头数据并通过 Yolo 进行图像识别
  • redis清空list
  • 汽车油耗NEDC与WLTP有什么区别?以及MATLAB/Simulink的汽车行驶工况仿真
  • 【Python】已解决报错:AttributeError: module ‘json‘ has no attribute ‘loads‘解决办法
  • (5)按钮输入
  • 嵌入式开发、C++后台开发、C++音视频开发怎么选择?
  • 高考志愿填报,大学读什么专业比较好?
  • 33 _ 跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性?
  • C++入门小结
  • Java 开发实例:Spring Boot+AOP+注解+Redis防重复提交(防抖)
  • 使用difflib实现文件差异比较用html显示
  • 【文末附gpt升级秘笈】AI热潮降温与AGI场景普及的局限性
  • Vue待学习
  • TOP150-LC88
  • 使用Python和TCN进行时间序列预测:一个完整的实战示例
  • 如何用R语言ggplot2画高水平期刊散点图
  • Python基于 Jupyter Notebook 的图形可视化工具库之ipysigma使用详解
  • 四叉树和KD树
  • C语言中结构体使用.与->访问成员变量的区别
  • 计算机二级Access选择题考点
  • 人工智能历史与现状
  • 【git使用一】windows下git下载、安装和卸载