尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Durability(持久性)是数据库事务ACID四大特性之一,指一旦事务成功提交(commit),其对数据库所做的修改将永久保存

Durability(持久性)是数据库事务ACID四大特性之一,指一旦事务成功提交(commit),其对数据库所做的修改将永久保存 Durability持久性是数据库事务ACID四大特性之一指一旦事务成功提交commit其对数据库所做的修改将永久保存即使系统发生故障如断电、崩溃、硬件损坏等这些数据也不会丢失。为实现持久性数据库通常采用写前日志WAL, Write-Ahead Logging、重做日志Redo Log、检查点Checkpoint以及将数据同步刷入非易失性存储如SSD或磁盘等机制。例如在 PostgreSQL 中事务提交前必须确保对应的 WAL 记录已刷新到磁盘在 MySQL InnoDB 中通过innodb_flush_log_at_trx_commit参数控制日志刷盘策略值为1时严格保证持久性。持久性不等于“实时物理写入数据页”而是保证“逻辑修改结果可恢复且不可丢失”——即崩溃恢复后能通过日志重放还原已提交事务的变更。ACID 是数据库事务的四个核心特性除Durability持久性外其余三个为Atomicity原子性定义事务是一个不可分割的最小执行单元其中所有操作要么全部成功提交要么全部失败回滚不存在“部分完成”的中间状态。保障机制通过undo log回滚日志记录事务修改前的数据镜像执行过程中若发生错误或显式ROLLBACK数据库利用 undo log 恢复至事务开始前状态在 MySQL InnoDB 中每个事务有独立的回滚段rollback segment支持多版本并发控制MVCC下的原子回退。Consistency一致性定义事务执行前后数据库必须从一个合法状态满足所有预定义约束、触发器、外键规则、业务逻辑等转变为另一个合法状态不破坏数据完整性。保障机制原子性 持久性 隔离性共同支撑一致性但一致性本身不是数据库自动保证的而是由应用逻辑与数据库约束协同实现数据库层强制执行主键/唯一约束、外键引用完整性、CHECK 约束、NOT NULL 等应用层需确保业务规则如“转账总额不变”在事务内正确编码否则即使 ACID 满足仍可能违反业务一致性。Isolation隔离性定义并发执行的多个事务彼此透明、互不干扰其效果等价于这些事务以某种串行顺序依次执行即可串行化。保障机制通过锁机制Locking和/或多版本并发控制MVCC实现不同隔离级别标准隔离级别SQL-92•READ UNCOMMITTED不加读锁可读未提交数据脏读•READ COMMITTEDOracle/SQL Server 默认语句级快照避免脏读•REPEATABLE READMySQL InnoDB 默认事务级快照避免脏读、不可重复读•SERIALIZABLE最高级别通过范围锁或严格串行调度防止幻读InnoDB 使用 MVCC Next-Key Lock间隙锁记录锁在 RR 级别下解决幻读问题。✅ 关键理解ACID 是目标而实现方式因引擎而异如 InnoDB vs MyISAM 不支持事务一致性C是结果其他三者A/I/D是技术手段——它们共同服务于一致性但无法替代业务逻辑校验。
返回列表