15.2 InnoDB and the ACID Model
15.2 InnoDB and the ACID Model
ACID 模型是一组数据库设计原则。MySQL 包含一些组件,比如 InnoDB 存储引擎,这些组件紧密地依附于 ACID 模型,这样数据就不会被破坏,结果也不会被诸如软件崩溃和硬件故障等异常情况所扭曲。
下面几节讨论 MySQL 的特性,特别是 InnoDB 存储引擎如何与 ACID 模型的交互:
A: atomicity 原子性
C: consistency 一致性
I: isolation隔离
D: durability 耐久性
Atomicity
ACID 模型的原子性方面主要涉及 InnoDB 事务。有关 MySQL 功能包括:
Auto commit 自动提交 COMMIT ROLLBACK
Operational data from the INFORMATION_SCHEMA tables
Consistency
ACID 模型的一致性方面主要涉及 InnoDB 内部处理,以保护数据不受崩溃的影响。
有关 MySQL 功能包括:
InnoDB doublewrite buffer 缓冲区。
InnoDB crash recovery 崩溃恢复。
Isolation
ACID 模型的隔离方面主要涉及 InnoDB 事务,特别是应用于每个事务的隔离级别。有关 MySQL 功能包括:
Autocommit 自动提交。
SET ISOLATION LEVEL 设置隔离级别语句。
InnoDB 锁定的底层细节。在性能调优期间,你可以通过 INFORMATION_SCHEMA 表看到这些细节。
Durability
ACID 模型的持久性方面涉及到与特定硬件配置交互的 MySQL 软件特性。由于许多可能性取决于你的 CPU、网络和存储设备的能力,这方面是最复杂的。
有关 MySQL 功能包括:
InnoDB doublewrite buffer 双写缓冲区,由 innodb_doublewrite 配置选项决定开启和关闭。
innodb_flush_log_at_trx_commit 配置选项。
sync_binlog 配置选项。
innodb_file_per_table 配置选项。
Write buffer in a storage device 例如磁盘 SSD RAID 磁盘阵列。
Battery-backed cache in a storage device.
用于运行 MySQL 的操作系统,特别是对 fsync() 系统调用的支持。
不间断电源 (UPS) 保护所有的计算机服务器和存储设备,这些服务器和存储设备运行 MySQL 服务器并存储 MySQL 数据。
你的备份策略,例如备份的频率和类型,以及备份保留周期。
对于分布式或托管的数据应用程序,MySQL 服务器硬件所在的数据中心的特殊特征,以及数据中心之间的网络连接。
领取专属 10元无门槛券
私享最新 技术干货