文档主页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  InnoDB 存储引擎  /  InnoDB 和 ACID 模型

17.2 InnoDB 和 ACID 模型

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

以下部分讨论了 MySQL 功能(特别是 InnoDB 存储引擎)如何与 ACID 模型的类别交互。

  • A: 原子性。

  • C: 一致性。

  • I:: 隔离性。

  • D: 持久性。

原子性

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

一致性

ACID 模型的 一致性 方面主要涉及内部 InnoDB 处理,以保护数据免受崩溃的影响。相关的 MySQL 功能包括

隔离性

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

持久性

ACID 模型的 持久性 方面涉及 MySQL 软件功能与您的特定硬件配置的交互。由于您的 CPU、网络和存储设备的功能存在许多可能性,因此这方面最难给出具体的指导原则。(而且这些指导原则可能采取 购买新硬件 的形式。)相关的 MySQL 功能包括

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

  • innodb_flush_log_at_trx_commit 变量。

  • sync_binlog 变量。

  • innodb_file_per_table 变量。

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

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

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

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

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

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