Documentation Home
MySQL 8.0 参考手册  / 第 15 章 InnoDB 存储引擎  /  15.2 InnoDB 和 ACID 模型

15.2 InnoDB 和 ACID 模型

ACID模型是一组数据库设计原则,强调对业务数据和关键任务应用程序很重要的可靠性方面 。MySQL 包括诸如InnoDB严格遵守 ACID 模型的存储引擎,因此数据不会损坏,结果也不会因软件崩溃和硬件故障等异常情况而失真。当您依赖 ACID 兼容功能时,您不需要重新发明一致性检查和崩溃恢复机制。如果您有额外的软件保护措施、超可靠的硬件或可以容忍少量数据丢失或不一致的应用程序,您可以调整 MySQL 设置以牺牲一些 ACID 可靠性来换取更高的性能或吞吐量。

以下部分讨论 MySQL 特性,特别是 InnoDB存储引擎,如何与 ACID 模型的类别交互:

  • :原子性。

  • C:一致性。

  • ::隔离。

  • D:耐久性。

原子性

ACID 模型的原子性方面主要涉及InnoDB 事务。相关的 MySQL 特性包括:

一致性

ACID 模型的一致性方面主要涉及内部InnoDB处理以防止数据崩溃。相关的 MySQL 特性包括:

隔离

ACID 模型的隔离方面主要涉及InnoDB 事务,特别是应用于每个事务的隔离级别。相关的 MySQL 特性包括:

耐用性

ACID 模型的持久性方面涉及与特定硬件配置交互的 MySQL 软件功能。由于有多种可能性取决于您的 CPU、网络和存储设备的能力,因此在这方面提供具体指导方针是最复杂的。(这些指导方针可能采取 购买新硬件的形式。)相关的 MySQL 功能包括:

  • InnoDB写缓冲区。请参见 第 15.6.4 节,“双写缓冲区”

  • innodb_flush_log_at_trx_commit 变量 。

  • sync_binlog变量 。

  • innodb_file_per_table 变量 。

  • 存储设备(例如磁盘驱动器、SSD 或 RAID 阵列)中的写入缓冲区。

  • 存储设备中的电池供电缓存。

  • 用于运行 MySQL 的操作系统,特别是它对fsync()系统调用的支持。

  • 不间断电源 (UPS) 保护运行 MySQL 服务器和存储 MySQL 数据的所有计算机服务器和存储设备的电力。

  • 您的备份策略,例如备份频率和类型,以及备份保留期。

  • 对于分布式或托管数据应用程序,MySQL 服务器硬件所在的数据中心的特定特征,以及数据中心之间的网络连接。