InnoDB和ACID模型
本页讨论:
- ACID是什么?
- mysql的哪些模块/设计与ACID相关?
ACID是什么?
- A: atomicity. 原子性
- C: consistency. 一致性
- I : isolation. 隔离性
- D: durability. 持久性
ACID其实是mysql的四种特性,见下图:
mysql的哪些模块/设计与ACID相关?
原子性
ACID模型的原子性方面主要涉及InnoDB事务。
相关的MySQL功能包括:
- 自动提交设置。
- COMMIT语句。
- ROLLBACK语句。
- 从INFORMATION_SCHEMA表操作数据。
一致性
ACID模型的一致性方面主要涉及内部InnoDB处理,以防止数据崩溃。
相关的MySQL功能包括:
- InnoDB双写缓冲区。
- InnoDB崩溃恢复。
隔离
ACID模型的隔离方面主要涉及InnoDB事务,特别是适用于每个事务的隔离级别。
相关的MySQL功能包括:
- 自动提交设置。
- SET ISOLATION LEVEL声明。
在性能调优期间,可以通过INFORMATION_SCHEMA表查看这些详细信息。
耐用性方面涉及与特定硬件配置交互的MySQL软件功能。由于根据CPU,网络和存储设备的功能有很多可能性,这方面是提供具体指导的最复杂的。
相关的MySQL功能包括:
- InnoDB双写缓冲区,由innodb_doublewrite配置选项打开和关闭。
- 配置选项innodb_flush_log_at_trx_commit。
- 配置选项sync_binlog。
- 配置选项innodb_file_per_table。
- 把缓存写在存储设备中,比如磁盘驱动器,SSD、RAID阵列。
- 用于运行MySQL的操作系统,特别是它支持fsync()系统调用。
- 备份策略,如备份的频率和类型以及备份保留期。
- 对于分布式或托管数据应用程序,MySQL服务器的硬件所在的数据中心的特性以及数据中心之间的网络连接。