在此章節中,我們列出 NDB 叢集中發現的限制,這些限制與標準 MySQL 中發現的限制有所不同,或是標準 MySQL 中沒有的限制。
記憶體使用量與復原。當資料插入 NDB
表格時所消耗的記憶體,並不會像其他儲存引擎一樣在刪除時自動回收。相反地,以下規則成立
對
NDB
表格執行DELETE
陳述式,會讓刪除的列先前使用的記憶體僅可由相同表格上的插入重新使用。然而,執行OPTIMIZE TABLE
即可讓此記憶體可供一般重新使用。叢集的滾動重新啟動也會釋放任何被刪除列所使用的記憶體。請參閱第 25.6.5 節,「執行 NDB 叢集的滾動重新啟動」。
對
NDB
表格執行DROP TABLE
或TRUNCATE TABLE
作業,會釋放此表格所使用的記憶體,以供任何NDB
表格重新使用,無論是相同的表格或是另一個NDB
表格。注意請回想
TRUNCATE TABLE
會刪除並重新建立表格。請參閱第 15.1.37 節,「TRUNCATE TABLE 陳述式」。叢集組態所施加的限制。 存在許多可設定的硬性限制,但叢集中可用的主記憶體會設定限制。請參閱第 25.4.3 節,「NDB 叢集組態檔案」中的完整組態參數清單。大多數組態參數可以線上升級。這些硬性限制包括
資料庫記憶體大小與索引記憶體大小(分別為
DataMemory
和IndexMemory
)。DataMemory
會以 32KB 的頁面配置。由於每個DataMemory
頁面都會使用,因此會指派給特定的表格;一旦配置,此記憶體除非刪除表格,否則無法釋放。請參閱第 25.4.3.6 節,「定義 NDB 叢集資料節點」,以取得更多資訊。
每個交易可執行的最大作業數是使用組態參數
MaxNoOfConcurrentOperations
和MaxNoOfLocalOperations
設定。注意大量載入、
TRUNCATE TABLE
和ALTER TABLE
會透過執行多個交易來處理,因此不受此限制。與表格和索引相關的不同限制。例如,叢集中排序索引的最大數量由
MaxNoOfOrderedIndexes
決定,而每個表格排序索引的最大數量為 16。
節點與資料物件最大值。以下限制適用於叢集節點和中繼資料物件的數量
資料節點的最大數量為 144 個。(在 NDB 7.6 和更早版本中,此值為 48。)
資料節點的節點 ID 必須在 1 到 144(含)的範圍內。
管理和 API 節點可以使用 1 到 255(含)範圍內的節點 ID。
NDB 叢集中節點的總最大數量為 255 個。此數字包含所有 SQL 節點(MySQL 伺服器)、API 節點(存取叢集的應用程式而非 MySQL 伺服器)、資料節點和管理伺服器。
目前 NDB 叢集版本中中繼資料物件的最大數量為 20320 個。此限制是硬式編碼的。
請參閱第 25.2.7.11 節,「在 NDB 叢集 8.4 中解決的先前 NDB 叢集問題」,以取得更多資訊。