許多其他儲存引擎支援的功能,NDB
表格不支援。嘗試在NDB叢集中使用任何這些功能本身不會導致錯誤;但是,在預期支援或強制執行這些功能的應用程式中可能會發生錯誤。引用這些功能的語句,即使實際上被NDB
忽略,也必須在語法上和其他方面有效。
索引前置詞。
NDB
表格不支援索引上的前置詞。如果在諸如CREATE TABLE
、ALTER TABLE
或CREATE INDEX
等語句中,前置詞被用作索引規範的一部分,NDB
不會建立該前置詞。包含索引前置詞,並且建立或修改
NDB
表格的語句,在語法上仍必須有效。例如,以下語句始終會因錯誤1089前置詞金鑰不正確;使用的金鑰部分不是字串,使用的長度大於金鑰部分,或儲存引擎不支援唯一的前置詞金鑰而失敗,無論使用哪種儲存引擎CREATE TABLE t1 ( c1 INT NOT NULL, c2 VARCHAR(100), INDEX i1 (c2(500)) );
發生這種情況的原因是SQL語法規則規定,任何索引的前置詞都不得大於本身。
儲存點和回滾。與
MyISAM
中一樣,儲存點和回滾到儲存點會被忽略。提交的持久性。磁碟上沒有持久的提交。提交會被複製,但不能保證提交時日誌會刷新到磁碟。
複製。不支援基於語句的複製。設定叢集複製時,請使用
--binlog-format=ROW
(或--binlog-format=MIXED
)。有關詳細資訊,請參閱第 25.7 節,「NDB 叢集複製」。使用全域交易識別碼 (GTID) 的複製與 NDB 叢集不相容,且 NDB 叢集 8.4 不支援。使用
NDB
儲存引擎時,請勿啟用 GTID,因為這很可能會導致問題,甚至包括 NDB 叢集複製失敗。NDB 叢集不支援半同步複製。
產生的資料行。
NDB
儲存引擎不支援虛擬產生資料行上的索引。與其他儲存引擎一樣,您可以在儲存的產生資料行上建立索引,但您應記住,
NDB
將DataMemory
用於儲存產生資料行,並將IndexMemory
用於索引。有關範例,請參閱NDB 叢集中的 JSON 資料行和間接索引。NDB 叢集將儲存的產生資料行中的變更寫入二進位日誌,但不記錄對虛擬資料行的變更。這不應影響 NDB 叢集複製或
NDB
和其他 MySQL 儲存引擎之間的複製。
有關NDB
中交易處理限制的詳細資訊,請參閱第 25.2.7.3 節,「NDB叢集中與交易處理相關的限制」。