MySQL的ACID模式
InnoDB引擎遵循ACID原则,ACID主要指:
? A: atomicity. 原子性
? C: consistency 一致性
? I: isolation. 隔离性
? D: durability. 持久性
Atomicity 原子性
ACID原则中的原子性主要涉及InnoDB transactions,主要MySQL以下功能相关:
? Autocommit setting. 自动提交设置
? COMMIT statement. Commit语句
? ROLLBACK statement. Rollback语句
? Operational data from the INFORMATION_SCHEMAtables. 从INFORMATION_SCHEMA表操作数据
Consistency 一致性
ACID原则中的一致性主要包括innodb内部对crash情况下数据的保护处理,主要MySQL以下功能相关:
? InnoDB doublewrite buffer. 两次写
? InnoDB crash recovery. 实例恢复
Isolation 隔离性
ACID原则中的隔离性主要包括InnoDB transactions,尤其是事务隔离级别,主要MySQL以下功能相关:
? Autocommit setting. 自动提交设置
? SET ISOLATION LEVEL statement. 设置事务隔离级别(四种:RU、RC、RR、SERIALIZABLE)
? The low-level details of InnoDB locking. During performance tuning, you see these details through
INFORMATION_SCHEMA tables. Innodb锁的底层细节,通过INFORMATION_SCHEMA下相关表获得性能相关细节
Durability 持久性
ACID原则中的持久性主要包括MySQL运行相关的硬件配置。因为取决于你的CPU、网络和存储等,这方面是复杂的。
主要MySQL以下功能相关:
? InnoDB doublewrite buffer 通过innodb_doublewrite选项开启或关闭
? innodb_flush_log_at_trx_commit 刷新redo log的机制
? sync_binlog. 刷新binlog的机制
? innodb_file_per_table. Innodb 表是单个文件存放
?存储设备的写缓存,如:磁盘驱动器、SSD或者RAID阵列
? 存储设备中电池支持的缓冲
? 运行MySQL的操作系统,特别是对fsync()系统调用的支持
? UPS保护
? 你的备份策略,如备份频率、备份类型以及备份保留时间等
? 分布式架构的数据应用,其数据中心之间的硬件、网络连接等
参考链接:http://dev.mysql.com/doc/refman/5.7/en/mysql-acid.html