文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  InnoDB 儲存引擎  /  InnoDB 與 ACID 模型

17.2 InnoDB 與 ACID 模型

ACID 模型是一組資料庫設計原則,強調對於商業資料和任務關鍵應用程式而言很重要的可靠性方面。MySQL 包含諸如 InnoDB 儲存引擎之類的元件,這些元件嚴格遵守 ACID 模型,以便資料不會損壞,並且結果不會因軟體當機和硬體故障等異常情況而失真。當您依賴符合 ACID 的功能時,您不需要重新發明一致性檢查和當機復原機制。如果您有額外的軟體防護措施、超可靠的硬體,或是可以容忍少量資料遺失或不一致的應用程式,您可以調整 MySQL 設定以犧牲一些 ACID 可靠性來換取更高的效能或輸送量。

以下章節討論 MySQL 功能,尤其是 InnoDB 儲存引擎,如何與 ACID 模型的類別互動

  • A:原子性。

  • C:一致性。

  • I::隔離性。

  • D:持久性。

原子性

ACID 模型的原子性方面主要涉及 InnoDB 交易。相關的 MySQL 功能包括

一致性

ACID 模型的一致性方面主要涉及內部 InnoDB 處理以保護資料免受當機影響。相關的 MySQL 功能包括

隔離性

ACID 模型的隔離性方面主要涉及 InnoDB 交易,尤其是套用於每個交易的隔離層級。相關的 MySQL 功能包括

持久性

ACID 模型中關於 耐用性 (durability) 的面向,涉及到 MySQL 軟體功能與您特定硬體組態的互動。由於 CPU、網路和儲存裝置的功能有許多不同的可能性,因此這方面是最難以提供具體指南的。(而這些指南可能採用 購買新硬體 的形式。)相關的 MySQL 功能包括:

  • InnoDB 雙寫緩衝區。請參閱第 17.6.4 節:「雙寫緩衝區」

  • innodb_flush_log_at_trx_commit 變數。

  • sync_binlog 變數。

  • innodb_file_per_table 變數。

  • 儲存裝置中的寫入緩衝區,例如磁碟機、SSD 或 RAID 陣列。

  • 儲存裝置中具有電池備援的快取。

  • 用於執行 MySQL 的作業系統,特別是其對 fsync() 系統呼叫的支援。

  • 保護所有執行 MySQL 伺服器和儲存 MySQL 資料的電腦伺服器和儲存裝置的電力之不斷電供應系統 (UPS)。

  • 您的備份策略,例如備份頻率和類型,以及備份保留期限。

  • 對於分散式或託管的資料應用程式,MySQL 伺服器的硬體所在之資料中心的特定特性,以及資料中心之間的網路連線。