InnoDB:InnoDB 和 ACID 模型
跳到导航
跳到搜索
关于
ACID 模型是一组数据库设计原则,这些原则强调了对于业务数据和关键任务应用程序很重要的可靠性方面。 MySQL 包含诸如 InnoDB 存储引擎之类的组件,这些组件与 ACID 模型紧密相关,因此数据不会损坏,结果不会因软件崩溃和硬件故障等异常情况而失真。当您依靠符合 ACID 的功能时,无需重新发明一致性检查和崩溃恢复机制。如果您有其他软件保护措施,超可靠的硬件或可以容忍少量数据丢失或不一致的应用程序,则可以调整 MySQL 设置以牺牲一些 ACID 可靠性,以获得更高的性能或吞吐量。
Atomicity(原子性)
ACID 模型的“原子性”方面主要涉及 InnoDB 事务。相关的 MySQL 功能包括:
- 自动提交设置。
- “COMMIT”语句。
- “ROLLBACK”语句。
- “INFORMATION_SCHEMA”表中的操作数据。
Consistency(一致性)
ACID 模型的“一致性”方面主要涉及内部 InnoDB 处理,以防止数据崩溃。相关的 MySQL 功能包括:
- InnoDB “doublewrite buffer”。【?】
- InnoDB “crash recovery”。【?】
Isolation(隔离性)
ACID 模型的“隔离”方面主要涉及 InnoDB 事务,尤其是适用于每个事务的“isolation level”(隔离级别)。相关的 MySQL 功能包括:
- 自动提交设置。
- “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”。【?】
- 存储设备(例如磁盘驱动器,SSD 或 RAID 阵列)中的写缓冲区。
- Batteries 后备存储设备中的缓存。
- 用于运行 MySQL 的 os,特别是它对“fsync()”系统调用的支持。
- 不间断电源(UPS)保护运行 MySQL 服务器并存储 MySQL 数据的所有计算机服务器和存储设备的电源。
- 您的备份策略,例如备份的频率和类型以及备份保留期。
- 对于分布式或托管数据应用程序,MySQL 服务器的硬件所位于的数据中心的特定特性,以及数据中心之间的网络连接。