在 MySQL 8.4 中,分割支援實際上不是由 MySQL 伺服器提供,而是由表格儲存引擎自己的或原生的分割處理常式提供。在 MySQL 8.4 中,只有 InnoDB
和 NDB
儲存引擎提供原生分割處理常式。這表示使用除了這些之外的任何其他儲存引擎都無法建立分割表格。(您必須將 MySQL NDB Cluster 與 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 Cluster)。 按 KEY
分割(包括 LINEAR KEY
)是 NDB
儲存引擎唯一支援的分割類型。在 NDB Cluster 的正常情況下,無法使用除了 [LINEAR
] KEY
之外的任何分割類型建立 NDB Cluster 表格,嘗試這樣做會失敗並出現錯誤。
可以為 NDB
表格定義的最大分割數量取決於叢集中的資料節點和節點群組數量、使用的 NDB Cluster 軟體版本和其他因素。如需更多資訊,請參閱 NDB 和使用者定義的分割。
每個 NDB
表格分割中可以儲存的最大固定大小資料量為 128 TB。先前,此數量為 16 GB。
導致使用者分割的 NDB
表格不符合以下兩個需求之一或兩者的 CREATE TABLE
和 ALTER TABLE
陳述式是不允許的,且會失敗並出現錯誤
表格必須具有明確的主鍵。
表格分割運算式中列出的所有欄位都必須是主鍵的一部分。
例外情況。 如果使用空的欄位清單(即使用 PARTITION BY KEY()
或 PARTITION BY LINEAR KEY()
)建立使用者分割的 NDB
表格,則不需要明確的主鍵。
分割選取。 NDB
表格不支援分割選取。如需更多資訊,請參閱 第 26.5 節,「分割選取」。
升級分割表格。 執行升級時,必須傾印並重新載入按 KEY
分割的表格。
如需有關將 MyISAM
表格轉換為 InnoDB
的資訊,請參閱 第 17.6.1.5 節,「將表格從 MyISAM 轉換為 InnoDB」。