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

事务的特性

ACID 是数据库事务特性的首字母缩写,对应四个英文单词及其含义如下:

  • ‌Atomicity(原子性)‌:
    事务作为一个不可分割的工作单位,其操作要么全部执行成功,要么全部回滚失败。
  • ‌Consistency(一致性)‌:
    事务确保数据库从一个合法状态转换到另一个合法状态,维护数据完整性规则。
  • ‌Isolation(隔离性)‌:
    多个事务并发执行时相互隔离,防止干扰和数据不一致。
  • ‌Durability(持久性)‌:
    事务提交后对数据的修改永久有效,即使系统故障也不会丢失。

ACID实现机制:

  • 原子性:
    原子性保证事务中的操作要么全部成功执行,要么全部回滚失效。具体通过‌undo log(回滚日志)‌实现:
    每次数据修改(如增删改)前,先将原始数据状态记录到undo log中;若事务回滚或异常中断,系统基于undo log执行反向操作(如反向SQL语句),撤销已成功更改,使数据恢复到事务开始前的状态
  • 一致性:
    一致性确保事务前后数据库符合业务规则(如数据约束、完整性)。其实现依赖两点:
    其他三大ACID特性(原子性、隔离性、持久性)共同保障基础数据状态合法
    ‌业务逻辑代码‌需显式定义并校验规则(如转账总额不变),否则仅靠数据库机制无法覆盖复杂业务场景
  • 隔离性:
    隔离性控制并发事务间的相互影响,防止脏读、不可重复读等问题。主要依靠两种机制:
    ‌锁机制‌:对写入操作加锁(如行锁、表锁),阻止其他事务同时修改相同数据
    ‌MVCC(多版本并发控制)‌:为每个事务生成数据快照(基于undo log
http://www.dtcms.com/a/326589.html

相关文章:

  • 下一代防火墙组网方案
  • IoT/透过oc_lwm2m/boudica150 源码中的AT指令序列,分析NB-IoT接入华为云物联网平台IoTDA的工作机制
  • visual studio 2015 使用番茄助手(Visual Assist)给函数自动添加注释模板
  • WSL / Linux安装MySQL(以及注意事项)
  • 嵌入式学习的第四十八天-中断+OCP原则
  • Photoshop图层混合模式:实现图像元素透明度渐变过渡的终极指南
  • Effective C++ 条款36: 绝不重新定义继承而来的非虚函数
  • 数据结构:树与二叉树
  • ARM基础概念 day51
  • easyExcel嵌套子集合导出Excel
  • 2025第十六届蓝桥杯大赛青少组省赛C++真题(初级组和中级组)
  • MCU的设计原理
  • SNMP入门教程:Windows下编译
  • Linux811 YUM;SHELL:if else fi,for
  • 进程线程切换的区别
  • 【k近邻】 K-Nearest Neighbors算法k值的选择
  • 第4节 大模型推理内存与计算优化
  • 【FreeRTOS】任务间通讯6: 任务通知- Task Notification
  • python+requests+yaml实现接口自动化用例
  • 【软件分享】格式工厂FormatFactory便携版本(解压即用)
  • 介绍一下jQuery的AJAX异步请求
  • Salesforce案例:零售企业会员积分体系
  • 新人如何简化学习Vue3文件
  • LangChain框架之 invoke() 方法
  • 【每日一错】PDB之间数据迁移
  • 7.Java的继承
  • 分享一款基于STC8H8K32U-45I-LQFP48单片机的4路数字量输入输出模块
  • 多重时间聚合算法(MAPA)改进需求预测模型
  • Redis实现排行榜
  • C++11 auto关键字:智能类型推导指南