关系型数据库:(eg:mysql)支持事务 ACID 特性

事务 ACID 特性

ACID 就是数据库里一个事务必须满足的 4 个规矩,保证数据不出错、不乱套。


1. A = Atomicity 原子性

要么全部成功,要么全部失败,不做一半

  • 就像转账:扣钱 + 加钱必须一起完成。
  • 扣了钱但没加到对方账户 = 失败,数据回滚,跟没操作一样。

一句话:不可分割,要么全做,要么全不做


2. C = Consistency 一致性

操作前后,数据始终合法、合理

  • 比如总钱数不变、余额不能为负、约束不能被破坏。
  • 不管怎么转,数据库永远是 "对的状态"。

一句话:数据永远合法,不会出现奇怪结果


3. I = Isolation 隔离性

多个事务同时跑,互不干扰

  • 你在转账,别人也在转账,互相看不见对方的中间状态。
  • 避免:你刚扣钱还没加钱,别人读到一个错误余额。

一句话:各玩各的,互不影响


4. D = Durability 持久性

一旦提交成功,就永久保存

  • 就算断电、崩溃、重启,成功提交的数据也不会丢。
  • 不会出现 "刚才明明成功了,刷新又没了"。

一句话:提交了就是永久的


极简总结(背这个就行)

  • A 原子性:要么全成,要么全不成
  • C 一致性:数据始终合法
  • I 隔离性:并发互不干扰
  • D 持久性:成功就永久保存
相关推荐
蓝田~9 小时前
MySQL慢查询怎么优化?B+Tree索引原理+MVCC读不阻塞写+EXPLAIN执行计划,从5秒到0.05秒
数据库·mysql
sunxunyong9 小时前
doris用户资源组配置
数据库
Cloud云卷云舒10 小时前
云卷云舒:HaishanDB的AI原生能力主要应用场景
数据库·人工智能·ai-native·haishandb·移动云长期记忆
时间的拾荒人10 小时前
MySQL 视图详解
android·数据库·mysql
qq_3660862210 小时前
sql 查询中关于 null 值判断的问题
数据库·sql
测试修炼手册10 小时前
[测试技术] JUnit 6 入门与实战:断言、参数化与 Mockito
数据库·junit·sqlserver
吴声子夜歌10 小时前
Redis 3.x——集群故障转移
java·数据库·redis·集群
名不经传的养虾人11 小时前
从0到1:企业级AI项目迭代日记 Vol.71|系统显示正常,但实际上什么都没发生
数据库·人工智能·ai编程·ai工作流·企业ai
尽兴-11 小时前
企业数据库选型与演进:Oracle、达梦、MySQL 与分库分表实践
数据库·mysql·oracle·分库分表
空中湖11 小时前
Spring AI Function Calling 完全指南:让 AI 查数据库、调 API、发通知
数据库·人工智能·spring