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

【面试题】MySQL 事务的四大特性说一下?

事务是一个或多个 SQL 语句组成的一个执行单元,这些 SQL 语句要么全部执行成功,要么全部不执行,不会出现部分执行的情况。事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。

事务的主要作用是保证数据库操作的一致性,即事务内的操作,要么全部成功,要么全部失败回滚,不会出现中间状态。这对于维护数据库的完整性和一致性非常重要。

事务具有四个基本特性,也就是通常所说的 ACID 特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

什么是原子性?

原子性子性意味着事务中的所有操作要么全部完成,要么全部不完成,它是不可分割的单位。如果事务中的任何一个操作失败了,整个事务都会回滚到事务开始之前的状态,如同这些操作从未被执行过一样。

什么是一致性?

一致性确保事务从一个一致的状态转换到另一个一致的状态。

比如在银行转账事务中,无论发生什么,转账前后两个账户的总金额应保持不变。假如 A 账户(100 块)给 B 账户(10 块)转了 10 块钱,不管成功与否,A 和 B 的总金额都是 110 块。

什么是隔离性?

隔离性意味着并发执行的事务是彼此隔离的,一个事务的执行不会被其他事务干扰。就是事务之间是井水不犯河水的。

隔离性主要是为了解决事务并发执行时可能出现的问题,如脏读、不可重复读、幻读等。

数据库系统通过事务隔离级别(如读未提交、读已提交、可重复读、串行化)来实现事务的隔离性。

什么是持久性?

持久性确保事务一旦提交,它对数据库所做的更改就是永久性的,即使发生系统崩溃,数据库也能恢复到最近一次提交的状态。通常,持久性是通过数据库的恢复和日志机制来实现的,确保提交的事务更改不会丢失。

简短一点的回答可以是:

  • 原子性:事务的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务中的操作不能只执行其中一部分。
  • 一致性:事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致性与业务规则有关,比如银行转账,不论事务成功还是失败,转账双方的总金额应该是不变的。
  • 隔离性:多个并发事务之间需要相互隔离,即一个事务的执行不能被其他事务干扰。
  • 持久性:一旦事务提交,则其所做的修改将永久保存到数据库中。即使发生系统崩溃,修改的数据也不会丢失。

 

 

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

相关文章:

  • 案例实践 | InterMat:基于长安链的材料数据发现与共享系统
  • 【数据挖掘】实验8:分类与预测建模
  • go语言并发实战——日志收集系统(三) 利用sarama包连接KafKa实现消息的生产与消费
  • Go 单元测试之Mysql数据库集成测试
  • Prometheus + Grafana 搭建监控仪表盘
  • 机器人管理系统的增删查改(Python)
  • 【.Net动态Web API】背景与实现原理
  • JS-43-Node.js02-安装Node.js和npm
  • 设计模式(分类)
  • 请陪伴Kimi和GPT成长
  • 优思学院|ISO45001职业健康安全管理体系是什么?
  • 抖去推短视频矩阵系统----源头开发
  • Golang函数重试机制实现
  • 工业电脑在ESOP工作站行业应用
  • java项目实战之图书管理系统(1)
  • 3DGS渐进式渲染 - 离线生成渲染视频
  • chromium 协议栈 cronet ios 踩坑案例
  • Java快速排序知识点(含面试大厂题和源码)
  • SpringBoot整合Swagger2
  • C++算法题 - 矩阵
  • 记录一个没测出来,有点严重的Bug
  • 科学突破可能开创6G通信新时代
  • 游戏、app抓包
  • PACNet CellNet(代码开源)|bulk数据作细胞分类,评估细胞命运性能的一大利器
  • (delphi11最新学习资料) Object Pascal 学习笔记---第10章第1节(定义属性)
  • 【网络安全 | 密码学】JWT基础知识及攻击方式详析
  • Chrome修改主题颜色
  • 大数据:【学习笔记系列】Flink基础架构
  • Debezium系列之:部署Debezium采集Oracle数据库的详细步骤
  • C语言通过键盘输入给结构体内嵌的结构体赋值——指针法