ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

持久性(Durability)是数据库事务ACID四大特性之一

2026/8/7 11:05:02 拓冰建站 浏览量
持久性(Durability)是数据库事务ACID四大特性之一 持久性Durability是数据库事务ACID四大特性之一指一旦事务成功提交commit其对数据库所做的修改将永久保存即使系统发生故障如断电、崩溃、硬件损坏等这些更改也不会丢失。为实现持久性数据库系统通常采用写前日志Write-Ahead Logging, WAL、事务日志持久化到磁盘、以及在提交时确保日志已刷写fsync等机制。例如在PostgreSQL中事务提交前必须将对应WAL记录写入并同步到磁盘在MySQL InnoDB中通过innodb_flush_log_at_trx_commit参数控制日志刷盘策略值为1时严格保证持久性。-- 示例开启事务、修改数据、提交此时变更应持久化BEGIN;UPDATEaccountsSETbalancebalance-100WHEREid1;UPDATEaccountsSETbalancebalance100WHEREid2;COMMIT;-- 此刻即使立即断电恢复后数据仍保持一致持久性Durability与原子性Atomicity、一致性Consistency、隔离性Isolation共同构成ACID四大特性它们并非孤立存在而是通过分层协作、相互支撑来保障事务的端到端可靠性原子性确保事务“全做或全不做”为持久性提供前提只有成功提交即原子性完成的事务其结果才需被持久化若事务因错误回滚则无需持久化任何中间状态。一致性定义事务执行前后数据库必须满足的业务规则如约束、触发器、外键等持久性则保证这些一致状态不会因故障而丢失——即“正确的结果一旦落地就永远正确”。隔离性防止并发事务互相干扰确保每个事务如同串行执行这使单个事务的原子一致行为可被独立判断从而让持久性只需关注该事务最终提交态的可靠保存而不必处理脏写或部分可见修改的持久化问题。持久性是ACID的“终点保障”它将前三个特性的逻辑成果已原子提交、满足一致性、在隔离环境下达成的状态固化到稳定存储中使系统从“内存中正确”升级为“断电后仍正确”。简言之 原子性划定“什么该持久化”仅COMMIT后的完整变更 隔离性确保“持久化的状态是干净、无干扰的” 一致性定义“持久化的内容必须合法” 持久性则兑现承诺“这个合法、干净、完整的状态永不消失”。四者形成闭环没有原子性和隔离性一致性无法可靠达成没有持久性前三个特性的成果将随故障归零——可靠性即不复存在。