在 MySQL 9.0 中,分割支援實際上並非由 MySQL 伺服器提供,而是由表格儲存引擎自身的或原生的分割處理常式提供。在 MySQL 9.0 中,只有 InnoDB
和 NDB
儲存引擎提供原生的分割處理常式。這表示無法使用這些以外的任何其他儲存引擎來建立分割表格。(您必須使用 MySQL NDB 叢集和 NDB
儲存引擎來建立 NDB
表格。)
InnoDB 儲存引擎。 InnoDB
外鍵和 MySQL 分割並不相容。分割的 InnoDB
表格不能有外鍵參照,也不能有被外鍵參照的欄位。InnoDB
表格如果有外鍵或被外鍵參照,則不能進行分割。
ALTER TABLE ... OPTIMIZE PARTITION
無法正確處理使用 InnoDB
的分割表格。請改為對這類表格使用 ALTER TABLE ... REBUILD PARTITION
和 ALTER TABLE ... ANALYZE PARTITION
。如需更多資訊,請參閱第 15.1.9.1 節,「ALTER TABLE 分割操作」。
使用者定義的分割和 NDB 儲存引擎 (NDB 叢集)。 分割 KEY
(包含 LINEAR KEY
) 是 NDB
儲存引擎唯一支援的分割類型。在正常情況下,NDB 叢集無法使用 [LINEAR
] KEY
以外的任何分割類型來建立 NDB 叢集表格,嘗試這樣做會導致錯誤。
可以為 NDB
表格定義的最大分割數取決於叢集中資料節點和節點群組的數量、所使用 NDB 叢集軟體的版本和其他因素。如需更多資訊,請參閱NDB 和使用者定義的分割。
每個分割在 NDB
表格中可以儲存的最大固定大小資料量為 128 TB。先前,此值為 16 GB。
CREATE TABLE
和 ALTER TABLE
陳述式如果導致使用者分割的 NDB
表格不符合以下兩個需求的其中一項或兩項,則會不被允許且會導致錯誤
表格必須有明確的主鍵。
表格分割運算式中列出的所有欄位都必須是主鍵的一部分。
例外狀況。 如果使用空欄位列表 (亦即使用 PARTITION BY KEY()
或 PARTITION BY LINEAR KEY()
) 建立使用者分割的 NDB
表格,則不需要明確的主鍵。
分割選擇。 NDB
表格不支援分割選擇。如需更多資訊,請參閱第 26.5 節,「分割選擇」。
升級分割的表格。 在執行升級時,必須傾印並重新載入按 KEY
分割的表格。
如需關於將 MyISAM
表格轉換為 InnoDB
的資訊,請參閱第 17.6.1.5 節,「將表格從 MyISAM 轉換為 InnoDB」。