的酸模型是一组数据库设计原则,强调了对业务数据和关键任务应用的可靠性的方面。MySQL包括诸如此类的组件InnoDB
存储引擎严格遵循ACID模型,这样数据就不会被破坏,结果也不会被异常情况(如软件崩溃和硬件故障)所扭曲。当您依赖于acid兼容的特性时,您不需要重新发明一致性检查和崩溃恢复机制。如果您有额外的软件保护措施、超可靠的硬件或能够容忍少量数据丢失或不一致的应用程序,您可以调整MySQL设置,以牺牲一些ACID可靠性来换取更高的性能或吞吐量。
以下部分讨论了MySQL的功能如何,特别是InnoDB
存储引擎,与ACID模型的类别交互:
一个:原子性。
C: 一致性。
一世:: 隔离。
D:耐用性。
原子学
的原子学酸模型的方面主要涉及InnoDB
交易.MySQL相关特性包括:
的
autocommit
设置。的
提交
声明。的
回滚
声明。
一致性
的一致性ACID模型的方面主要涉及内部InnoDB
处理以防止数据崩溃。MySQL相关特性包括:
的
InnoDB
doublewrite缓冲区。看到第15.6.4节“双重缓冲区”.InnoDB
崩溃恢复。看到InnoDB崩溃恢复.
隔离
的隔离酸模型的方面主要涉及InnoDB
交易,特别是隔离级别这适用于每个事务。MySQL相关特性包括:
的
autocommit
设置。交易隔离级别和
设置事务
声明。看到第15.7.2.1节“交易隔离级别”.的底层细节
InnoDB
锁定.详细信息可以查看Information_Schema.
表(参见第15.15.2节“InnoDB Information_Schema交易和锁定信息”)和性能架构data_locks
和data_lock_waits
表。
耐久性
的耐用性ACID模型的方面涉及到MySQL软件特性与特定的硬件配置交互。由于取决于您的CPU、网络和存储设备的能力,有许多可能性,因此为这方面提供具体的指导是最复杂的。(这些指导方针的形式可能是”购买新的硬件”)。MySQL相关特性包括:
的
InnoDB
doublewrite缓冲区。看到第15.6.4节“双重缓冲区”.的
sync_binlog
变量。存储设备中的写缓冲区,例如磁盘驱动器,SSD或RAID阵列。
存储设备中的电池备份缓存。
操作系统用于运行MySQL,特别是其支持
fsync ()
系统调用。一个不间断电源(UPS),保护所有计算机服务器和存储设备的电力运行MySQL服务器和存储MySQL数据。
您的备份策略,例如备份的频率和类型,以及备份保留周期。
对于分布式或托管数据应用程序,MySQL服务器硬件所在的数据中心的特殊特性,以及数据中心之间的网络连接。