ACID 模型是一組資料庫設計原則,強調對商業資料和任務關鍵型應用程式很重要的可靠性方面。MySQL 包含諸如 InnoDB
儲存引擎之類的元件,這些元件緊密遵守 ACID 模型,因此資料不會損毀,結果也不會因軟體當機和硬體故障等異常狀況而扭曲。當您依靠符合 ACID 標準的功能時,您不需要重新發明一致性檢查和當機復原機制。如果您有額外的軟體保護措施、超可靠的硬體,或是可以容忍少量資料遺失或不一致的應用程式,您可以調整 MySQL 設定,以犧牲一些 ACID 可靠性來換取更高的效能或輸送量。
以下各節討論 MySQL 功能,特別是 InnoDB
儲存引擎,如何與 ACID 模型的類別互動
A:原子性。
C:一致性。
I::隔離性。
D:持久性。
原子性
ACID 模型的 原子性 方面主要涉及 InnoDB
交易。相關的 MySQL 功能包括
autocommit
設定。COMMIT
陳述式。ROLLBACK
陳述式。
一致性
ACID 模型的 一致性 方面主要涉及內部 InnoDB
處理,以保護資料免受當機影響。相關的 MySQL 功能包括
InnoDB
雙寫緩衝區。請參閱 第 17.6.4 節「雙寫緩衝區」。InnoDB
當機復原。請參閱 InnoDB 當機復原。
隔離性
ACID 模型的 隔離性 方面主要涉及 InnoDB
交易,特別是套用至每個交易的隔離層級。相關的 MySQL 功能包括
autocommit
設定。交易隔離層級和
SET TRANSACTION
陳述式。請參閱 第 17.7.2.1 節「交易隔離層級」。InnoDB
鎖定的低階詳細資訊。可以在INFORMATION_SCHEMA
資料表(請參閱第 17.15.2 節「InnoDB INFORMATION_SCHEMA 交易和鎖定資訊」)和效能綱要data_locks
與data_lock_waits
資料表中檢視詳細資訊。
持久性
ACID 模型的 持久性 方面涉及 MySQL 軟體功能與您的特定硬體配置互動。由於根據您的 CPU、網路和儲存裝置的功能,可能會有許多可能性,因此這方面最難提供具體的指導方針。(而這些指導方針可能採用「「購買新硬體」」的形式。)相關的 MySQL 功能包括
InnoDB
雙寫緩衝區。請參閱 第 17.6.4 節「雙寫緩衝區」。sync_binlog
變數。儲存裝置(例如磁碟機、SSD 或 RAID 陣列)中的寫入緩衝區。
儲存裝置中的電池備援快取。
用於執行 MySQL 的作業系統,特別是其對
fsync()
系統呼叫的支援。保護所有執行 MySQL 伺服器和儲存 MySQL 資料的電腦伺服器及儲存裝置電力供應的不斷電系統(UPS)。
您的備份策略,例如備份頻率和類型,以及備份保留期限。
對於分散式或託管資料應用程式,MySQL 伺服器硬體所在的資料中心特定特性,以及資料中心之間的網路連線。