15.2 innodb与ACID特性

ACID模型是一组数据库设计原则,对业务数据和关键程序的可靠性方面非常重要。MySQL包括InnoDB存储引擎等组件,它们与ACID模型紧密结合,因此数据不会被破坏,并且结果不会因软件崩溃和硬件故障等特殊情况而失真。当依赖符合ACID的功能时,无需重新发明一致性检查和崩溃恢复机制。如果有其他软件安全措施,超可靠硬件或业务可以容忍少量数据丢失或不一致,可以调整MySQL设置以牺牲一些ACID可靠性以获得更高的性能或吞吐量。

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

  • A: atomicity(原子性)。
  • C: consistency(一致性)。
  • I: isolation(隔离性)。
  • D: durability(持久性)。

原子性

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

  • Autocommit设置。
  • COMMIT子句。
  • ROLLBACK子句。
  • INFORMATION_SCHEMA表中的操作数据。

一致性

ACID模型的一致性方面主要涉及Innodb内部在崩溃时如何保护数据,相关的MySQL功能包括:

隔离性

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

  • Autocommit设置。
  • SET ISOLATION LEVEL子句。
  • InnoDB锁定的低级细节。在性能调优期间,您可以通过INFORMATION_SCHEMA表查看这些详细信息。

持久性

ACID模型的持久性方面涉及MySQL软件功能与您的特定硬件配置交互。由于CPU,网络和存储设备的功能的多样性,这方面是非常复杂的(很多时候时购买新硬件)。涉及的MySQL部分:

  • InnoDB doublewrite buffer, innodb_doublewrite参数控制其启用与否。
  • innodb_flush_log_at_trx_commit参数。
  • sync_binlog参数。
  • innodb_file_per_table参数。
  • 存储设备的写缓冲,如磁盘,SSD,RAID组。
  • 存储设备中的电池备份缓存。
  • 用于运行MySQL的操作系统,特别是它对fsync()系统调用的支持。
  • 运行MySQL服务器和存储MySQL数据的所有计算机服务器和存储设备的不间断电源(UPS)。
  • 备份策略, 如备份类型和频率,以及备份的保存时长。
  • 对于分布式或托管数据应用,MySQL服务器的硬件所在的数据中心的特定特征,以及数据中心之间的网络连接。

results matching ""

    No results matching ""