MySQL數據庫和ACID模型

ACID模型是一組強調高可靠性的數據庫系統設計原則。InnoDB存儲引擎堅持ACID原則,確保即便在軟件崩潰甚至是硬件故障的狀況下,數據也不會損壞。當你須要依賴兼容ACID原則的業務時,你沒必要重複造輪子去實現一致性檢查和崩潰恢復機制。在一些狀況下,若是你有額外的安全保證機制,可靠的硬件條件,或者應用可以容忍少許的數據丟失和不一致,你能夠調整MYSQL設置,犧牲掉ACID的一些可靠性換取更高的性能和數據吞吐量。數據庫

ACID原則

  • A: atomicity (原子性)
  • C: consistency (一致性)
  • I: isolation (隔離性)
  • D: durability (持久性)

Atomicity(原子性)

原子性主要涉及到InnoDB事務。相關的MYSQL特徵包括:安全

Autocommit COMMIT語句 ROLLBACK語句網絡

Consistency(一致性)

一致性主要涉及到InnoDB內部軟件崩潰時的數據保護恢復機器。相關的MYSQL特徵包括:分佈式

  • InnoDB雙寫緩衝
  • InnoDB崩潰恢復

Isolation(隔離性)

隔離性主要涉及到InnoDB具體事務的隔離級別。相關的MYSQL特徵包括:性能

Autocommit SET ISOLATION LEVEL語句 InnoDB鎖的低層細節。在性能調優時,你能夠經過INFORMATION_SCHEMA表看到這些細節atom

Durability(持久性)

持久性主要涉及MySQL軟件特徵與你實際硬件配置的相互做用。這個特性更多的取決於你的CPU,網絡,和存儲設備的能力。相關的MYSQL特徵包括:操作系統

  • innodb_doublewrite
  • innodb_flush_log_at_trx_commit
  • sync_binlog
  • innodb_file_per_table
  • 磁盤驅動
  • 操做系統是否支持fsync()系統調用
  • 備份策略
  • 分佈式
相關文章
相關標籤/搜索