ACID
模型是一组数据库设计原则,强调对业务数据和任务关键型应用程序很重要的可靠性方面。 MySQL
包括 InnoDB
存储引擎等组件,它们与 ACID
模型密切相关,因此数据不会被破坏,结果也不会因软件崩溃和硬件故障等异常情况而失真。当您依赖符合 ACID
的特性时,您不需要重新发明一致性检查和崩溃恢复机制的轮子。如果您有额外的软件保护措施、超可靠的硬件或可以容忍少量数据丢失或不一致的应用程序,您可以调整 MySQL
设置以换取一些 ACID
可靠性以获得更高的性能或吞吐量。
以下部分讨论 MySQL
特性,特别是 InnoDB
存储引擎,如何与 ACID
模型的类别交互:
- A:原子性
- C:一致性
- I:隔离性
- D:持久性
原子性
ACID
模型的原子性方面主要涉及 InnoDB
事务。相关的 MySQL
功能包括:
- autocommit设置
- COMMIT设置
- ROLLBACK设置
一致性
ACID
模型的一致性方面主要涉及内部 InnoDB
处理,以保护数据免于崩溃。相关的 MySQL
功能包括:
InnoDB
双写缓冲区,See Section 14.6.5, “Doublewrite Buffer”InnoDB
崩溃恢复, See InnoDB Crash Recovery