MySQL 8.4 版本注意事項
使用分散式、無共享架構實作 NDB
儲存引擎,這會使其在許多方面與 InnoDB
的行為有所不同。對於那些不習慣使用 NDB
的人來說,由於其在交易、外鍵、表格限制和其他特性方面的分散式本質,可能會產生意料之外的行為。這些顯示在下表中
表 25.1 InnoDB 和 NDB 儲存引擎之間的差異
功能 | InnoDB (MySQL 8.4) |
NDB 8.4 |
---|---|---|
MySQL 伺服器版本 | 8.4 | 8.4 |
InnoDB 版本 |
InnoDB 8.4.0 |
InnoDB 8.4.0 |
NDB 叢集版本 | 不適用 | NDB
8.4.0/8.4.0 |
儲存限制 | 64TB | 128TB |
外鍵 | 是 | 是 |
交易 | 所有標準類型 | READ COMMITTED |
MVCC | 是 | 否 |
資料壓縮 | 是 | 否 (可以壓縮 NDB 檢查點和備份檔案) |
大型資料列支援 ( > 14K) | 支援 VARBINARY 、VARCHAR 、BLOB 和 TEXT 資料行 |
僅支援 BLOB 和 TEXT 資料行 (使用這些類型儲存非常大量的資料可能會降低 NDB 效能) |
複寫支援 | 使用 MySQL 複寫的非同步和半同步複寫;MySQL 群組複寫 | NDB 叢集內的自動同步複寫;使用 MySQL 複寫在 NDB 叢集之間進行非同步複寫 (不支援半同步複寫) |
讀取操作的橫向擴充 | 是 (MySQL 複寫) | 是 (NDB 叢集中的自動分割;NDB 叢集複寫) |
寫入操作的橫向擴充 | 需要應用程式層級分割 (分片) | 是 (NDB 叢集中的自動分割對應用程式是透明的) |
高可用性 (HA) | 內建,來自 InnoDB 叢集 | 是 (設計為 99.999% 的正常執行時間) |
節點故障恢復和容錯移轉 | 來自 MySQL 群組複寫 | 自動 (NDB 架構中的關鍵元素) |
節點故障恢復時間 | 30 秒或更長 | 通常 < 1 秒 |
即時效能 | 否 | 是 |
記憶體內表格 | 否 | 是 (某些資料可選擇性地儲存在磁碟上;記憶體內和磁碟資料儲存都是持久的) |
對儲存引擎的 NoSQL 存取 | 是 | 是 (多個 API,包括 Memcached、Node.js/JavaScript、Java、JPA、C++ 和 HTTP/REST) |
並行和平行寫入 | 是 | 最多 48 個寫入器,針對並行寫入進行最佳化 |
衝突偵測和解決 (多個來源) | 是 (MySQL 群組複寫) | 是 |
雜湊索引 | 否 | 是 |
線上新增節點 | 使用 MySQL 群組複寫讀取/寫入複本 | 是 (所有節點類型) |
線上升級 | 是 (使用複寫) | 是 |
線上綱要修改 | 是,作為 MySQL 8.4 的一部分 | 是 |