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

MySQL---事务的四大特性详解(高频面试题)

在MySQL中,事务具有以下四个基本特性:

原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这些特性通常被称为ACID特性。

一、原子性:

原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 

#这意味着,如果事务中的任何一个操作失败,那么整个事务都会失败,数据库状态回滚到事务开始前的状态。这样可以保证数据的一致性,防止因为事务中的某个操作失败而导致的数据不一致。

#在系统发生故障的情况下,原子性可以帮助我们恢复到故障发生前的状态。因为原子性要求事务必须是全部执行或者全部不执行,所以在故障恢复时,我们可以直接回滚到事务开始前的状态,而不需要关心事务中的哪个操作已经执行,哪个操作还没有执行。

二、一致性:

一致性(Consistency):事务必须使数据库从一个一致状态转变为另一个一致状态 。

#事务的一致性保证了在事务开始和结束时,数据库的状态是一致的。这意味着所有的业务规则和约束条件都得到了满足。

#例如,如果一个事务试图将一个账户的余额设置为负数,那么由于存在账户余额不能为负的业务规则,该事务将无法提交,从而保证了数据的一致性。

三、隔离性:

隔离性(Isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。   

#因为当多个事务同时访问和修改同一份数据时,可能会出现以下问题

1.一个事务读取了另一个未提交的事务的数据(脏读)。 

2.在一个事务内,多次读取同一数据返回的结果不一致(不可重复读)

3.在一个事务内,两次查询返回的结果集不一致(幻读)

#为了解决这些问题,引入了事务的隔离性。隔离性可以保证在并发环境下,一个事务的执行不会影响其他事务的执行,从而保证了数据的一致性和完整性。

四、持久性:

持久性(Durability):一旦事务完成,它对数据库的更改就是永久的,即使在系统故障的情况下也能保持。

#事务完成,数据写入到硬盘中

#当系统发生故障时,持久性可以保证已经提交的事务不会丢失。这是因为持久性要求一旦事务被提交,它对数据库的更改就应该是永久的,即使在系统故障的情况下也不会丢失。

总结:

这些特性确保了数据库在并发环境下的正确运行。

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

相关文章:

  • 为 OpenCV 编写文档(二)
  • HUAWEI华为MateStation S台式机电脑12代PUC-H7621N,H5621N原装出厂Windows11.22H2系统
  • 机器学习:holdout法(Python)
  • 【GaussDB数据库】序
  • 代码随想录算法训练营第三十八天|理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 大数据开发之Hadoop(优化新特征)
  • 在使用go语言开发的时候,程序启动后如何获取程序pid
  • HFSS笔记/信号完整性分析(二)——软件仿真设置大全
  • mysql主从报错:Last_IO_Error: Error connecting to source解决方法
  • AOI与AVI:在视觉检测中的不同点和相似点
  • Python爬虫 - 网易云音乐下载
  • yarn包管理器在添加、更新、删除模块时,在项目中是如何体现的
  • React实现Intro效果(基础简单)
  • HBuilderx发布苹果的包需要注意什么
  • 烟火检测/周界入侵/视频智能识别AI智能分析网关V4如何配置ONVIF摄像机接入
  • C++ 内联函数
  • 微信小程序带参数分享界面、打开界面加载分享内容
  • 中小企业选择CRM系统有哪些注意事项?如何高效实施CRM
  • 轮胎侧偏刚度线性插值方法
  • 前端JS代码中Object类型数据的相关知识
  • vue基于Spring Boot共享单车租赁报修信息系统
  • CentOS 6.10 安装图解
  • Web自动化测试中的接口测试
  • 轻松识别Midjourney等AI生成图片,开源GenImage
  • ARP相关
  • uniapp打包配置 (安卓+ios)
  • 【算法优选】 动态规划之简单多状态dp问题——壹
  • Git学习笔记(第2章):Git安装
  • C生万物呀
  • 华纳云:怎么解决docker容器一直处于重启状态的问题?