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