讲师中心 微信公众号
AI工具推荐 视频效率加速

mysql事务的ACID特性是什么_mysql事务ACID特性解析

冬伟姑娘_5609

冬伟姑娘_5609

发布时间:2025-12-21 18:38:02

|

192人浏览过

|

来源于php中文网

原创

MySQL事务的ACID特性指原子性、一致性、隔离性、持久性:原子性通过undo log实现全提交或全回滚;一致性由约束与逻辑共同保障数据合法;隔离性依赖MVCC与锁机制防止并发异常;持久性靠redo log确保提交后数据不丢失。

mysql事务的acid特性是什么_mysql事务acid特性解析

MySQL事务的ACID特性,是指事务必须具备的四个核心属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这四个特性共同保障了数据库在并发操作和异常情况下仍能正确、可靠地处理数据。

原子性(Atomicity)

事务是一个不可分割的最小执行单元,其中的所有操作要么全部成功提交,要么全部回滚失败,不会出现部分执行的情况。

  • MySQL通过undo log实现原子性:执行过程中记录反向操作日志,一旦发生错误或显式执行ROLLBACK,系统利用undo log将数据恢复到事务开始前的状态
  • START TRANSACTION开启事务,COMMIT提交,ROLLBACK撤销——这三个语句共同构成原子性控制边界
  • 注意:单条SQL默认自动提交(autocommit=1),需先设SET autocommit = 0,再手动管理事务,才能体现原子性效果

一致性(Consistency)

事务执行前后,数据库必须从一个合法状态转换到另一个合法状态,始终满足预定义的约束规则(如主键、外键、唯一性、CHECK条件等)。

kashen-mysql DDLtoExcel
kashen-mysql DDLtoExcel

解析 MySQL 8.0 的 DDL 脚本,并将表结构导出为 Excel 格式。适用于用户需将 MySQL 的 `CREATE TABLE` 语句转换为结构化的 Excel 文件场景,导出内容包含字段名、数据类型、长度及精度等信息。支持多张表的批量处理,每张表对应 Excel 中的一个独立工作表。适用于数据库文档编写、数据字典生成及模式分析等任务。

下载
  • 一致性是应用逻辑与数据库约束共同保障的结果,不是由某一种机制单独实现的
  • 例如转账操作中,A扣款100元、B加款100元,总金额不变;若中途崩溃,原子性和持久性配合确保不会出现“钱凭空消失”或“重复入账”
  • 外键约束、触发器、应用层校验都参与维持一致性,但MySQL本身不自动修复业务逻辑错误

隔离性(Isolation)

多个并发事务相互隔离,一个事务的中间状态对其他事务不可见,避免脏读、不可重复读和幻读等问题。

  • MySQL默认隔离级别为REPEATABLE READ,通过MVCC(多版本并发控制)+间隙锁(Gap Lock)解决大部分并发问题
  • 四种标准隔离级别对应不同可见性规则:READ UNCOMMITTED(可读未提交,有脏读)、READ COMMITTED(读已提交,无脏读但可能不可重复读)、REPEATABLE READ(可重复读,MySQL默认,解决不可重复读,配合间隙锁防幻读)、SERIALIZABLE(串行化,最高隔离,但性能最低)
  • 可通过SELECT @@transaction_isolation;查看当前会话隔离级别,用SET SESSION TRANSACTION ISOLATION LEVEL ...动态调整

持久性(Durability)

事务一旦提交,其结果将永久保存在数据库中,即使系统崩溃也不会丢失。

  • MySQL主要依靠redo log(重做日志)保证持久性:事务提交时,先将变更写入redo log buffer,再刷盘到redo log文件,最后才更新Buffer Pool中的数据页
  • 崩溃恢复时,MySQL通过重放redo log,把已提交但尚未写入磁盘的数据页重新构建出来
  • innodb_flush_log_at_trx_commit参数控制刷盘策略:值为1(默认)表示每次提交都刷盘,最安全;0或2会牺牲一定安全性换取性能

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

4703

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

971

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

1229

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

6701

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

3423

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

6680

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

9221

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

1250

2024.04.29

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

0

2026.11.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 193人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn