14.2 InnoDB and the ACID Model ACID 模型是一组数据库设计原则,强调可靠性方面对于商业数据和关键人物。 MySQL 包含组件比如InnoDB存储引擎坚持ACID 模型, 这样数据不会被破坏和结果不受特殊条件的弯曲 比如软件crashes 和硬件故障 当你依靠ACID兼容的功能, 你不需要重复发明一致性检查和 crash recovery机制。 如果你有额外的软件保障的情况下, 超可靠的硬件,一个应用可以容忍小量数据丢失或者不一致, 你可以调整MySQL 设置来交换ACID 可靠性的一些对于更好的性能和吞吐量 下面的章节讨论MySQL的特点, 特别是InnoDB存储引擎,与ACID模型交互: A: atomicity. C: consistency. I:: isolation. D: durability. 原子性: ACID 模型的原子性方面主要涉及InnoDB 事务,MySQl相关的功能包含: 1.自动提交设置 2. 提交语句 3. 回滚语句 4.从INFORMATION_SCHEMA 操作数据 一致性: ACID 模型的一致性方面主要涉及 internal InnoDB 处理来保护数据(crash),Mysql相关功能包括: InnoDB doublewrite buffer. InnoDB crash recovery. 隔离: ACID 模型的隔离方面主要涉及InnoDB 事务, 特别适用于交易系统 1.Autocommit 自动提交设置 2.SET ISOLATION LEVEL statement. 3. InnoDB 锁low-level 细节, 在性能调优,你可以查询那些细节通过INFORMATION_SCHEMA tables. Durability 耐久性: ACID 模型的耐久性方面涉及MySQL 软件功能和你的特定的硬件配置交互。 很多可能的取决于你的CPU,网络,存储设备, 1. InnoDB doublewrite buffer, 开启和关闭通过innodb_doublewrite configuration option. 2.Configuration option innodb_flush_log_at_trx_commit. 3.Configuration option sync_binlog. 4.Configuration option innodb_file_per_table. 5.写buffer 到一个存储设备,比如磁盘,ssd或者raid阵列