MySQL 8.4 參考手冊  /  ...  /  與儲存引擎相關的分割限制

26.6.2 與儲存引擎相關的分割限制

在 MySQL 8.4 中,分割支援實際上不是由 MySQL 伺服器提供,而是由表格儲存引擎自己的或原生的分割處理常式提供。在 MySQL 8.4 中,只有 InnoDBNDB 儲存引擎提供原生分割處理常式。這表示使用除了這些之外的任何其他儲存引擎都無法建立分割表格。(您必須將 MySQL NDB Cluster 與 NDB 儲存引擎搭配使用才能建立 NDB 表格。)

InnoDB 儲存引擎。  InnoDB 外來鍵和 MySQL 分割不相容。分割的 InnoDB 表格不能有外來鍵參考,也不能有被外來鍵參考的欄位。InnoDB 表格具有或被外來鍵參考,則不能分割。

ALTER TABLE ... OPTIMIZE PARTITION 在使用 InnoDB 的分割表格上無法正確運作。對於這類表格,請改用 ALTER TABLE ... REBUILD PARTITIONALTER 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 TABLEALTER TABLE 陳述式是不允許的,且會失敗並出現錯誤

  1. 表格必須具有明確的主鍵。

  2. 表格分割運算式中列出的所有欄位都必須是主鍵的一部分。

例外情況。  如果使用空的欄位清單(即使用 PARTITION BY KEY()PARTITION BY LINEAR KEY())建立使用者分割的 NDB 表格,則不需要明確的主鍵。

分割選取。  NDB 表格不支援分割選取。如需更多資訊,請參閱 第 26.5 節,「分割選取」

升級分割表格。  執行升級時,必須傾印並重新載入按 KEY 分割的表格。

如需有關將 MyISAM 表格轉換為 InnoDB 的資訊,請參閱 第 17.6.1.5 節,「將表格從 MyISAM 轉換為 InnoDB」