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