PARTITIONS 表提供有關資料表分割區的資訊。此表格中的每一列對應於分割資料表的個別分割區或子分割區。如需有關分割資料表的詳細資訊,請參閱第 26 章,分割區。
PARTITIONS 表有下列欄位
TABLE_CATALOG資料表所屬的目錄名稱。此值永遠是
def。TABLE_SCHEMA資料表所屬的綱要 (資料庫) 名稱。
TABLE_NAME包含分割區的資料表名稱。
PARTITION_NAME分割區的名稱。
SUBPARTITION_NAME如果
PARTITIONS表列代表子分割區,則為子分割區的名稱;否則為NULL。對於
NDB:此值永遠是NULL。PARTITION_ORDINAL_POSITION所有分割區的索引順序與定義順序相同,
1是指派給第一個分割區的數字。索引會隨著新增、捨棄和重新組織分割區而變更;此欄中顯示的數字反映目前的順序,並會將任何索引變更納入考量。SUBPARTITION_ORDINAL_POSITION指定分割區內的子分割區也會以與資料表內分割區相同的模式進行索引和重新索引。
PARTITION_METHOD值為
RANGE、LIST、HASH、LINEAR HASH、KEY或LINEAR KEY其中之一;也就是說,第 26.2 節,「分割區類型」中討論的可用分割區類型之一。SUBPARTITION_METHOD值為
HASH、LINEAR HASH、KEY或LINEAR KEY其中之一;也就是說,第 26.2.6 節,「子分割區」中討論的可用子分割區類型之一。PARTITION_EXPRESSION在
CREATE TABLE或ALTER TABLE陳述式中用於建立資料表目前分割區配置之分割區函數的運算式。例如,請考慮使用此陳述式在
test資料庫中建立的分割資料表CREATE TABLE tp ( c1 INT, c2 INT, c3 VARCHAR(25) ) PARTITION BY HASH(c1 + c2) PARTITIONS 4;此資料表分割區的
PARTITIONS表列中的PARTITION_EXPRESSION欄會顯示c1 + c2,如下所示mysql> SELECT DISTINCT PARTITION_EXPRESSION FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='tp' AND TABLE_SCHEMA='test'; +----------------------+ | PARTITION_EXPRESSION | +----------------------+ | c1 + c2 | +----------------------+對於未明確分割的表格,無論使用何種儲存引擎,此欄位的值永遠為
NULL。SUBPARTITION_EXPRESSION此欄位的作用方式與
PARTITION_EXPRESSION定義表格分割的方式相同,用於定義表格子分割的子分割表達式。如果表格沒有子分割,此欄位的值為
NULL。PARTITION_DESCRIPTION此欄位用於 RANGE 和 LIST 分割。對於
RANGE分割,它包含分割的VALUES LESS THAN子句中設定的值,該值可以是整數或MAXVALUE。對於LIST分割,此欄位包含分割的VALUES IN子句中定義的值,該子句是以逗號分隔的整數值列表。對於
PARTITION_METHOD不是RANGE或LIST的分割,此欄位的值永遠為NULL。TABLE_ROWS分割中的表格列數。
對於已分割的
InnoDB表格,TABLE_ROWS欄位中提供的列數僅為 SQL 優化中使用的估計值,可能並不總是準確。AVG_ROW_LENGTH此分割或子分割中儲存的列的平均長度,以位元組為單位。這與
DATA_LENGTH除以TABLE_ROWS的結果相同。DATA_LENGTH此分割或子分割中儲存的所有列的總長度,以位元組為單位;也就是說,分割或子分割中儲存的總位元組數。
MAX_DATA_LENGTH此分割或子分割中可以儲存的最大位元組數。
INDEX_LENGTH此分割或子分割的索引檔長度,以位元組為單位。
對於
NDB表格的分割,無論表格使用隱式或顯式分割,INDEX_LENGTH欄位的值永遠為 0。但是,您可以使用 ndb_desc 工具來獲取等效的資訊。DATA_FREE分配給分割或子分割但未使用的位元組數。
CREATE_TIME建立分割或子分割的時間。
UPDATE_TIME上次修改分割或子分割的時間。
CHECK_TIME上次檢查此分割或子分割所屬表格的時間。
對於已分割的
InnoDB表格,此值永遠為NULL。CHECKSUM校驗和值(如果有的話);否則為
NULL。PARTITION_COMMENT註解的文字(如果分割有註解)。如果沒有,此值為空。
分割註解的最大長度定義為 1024 個字元,且
PARTITION_COMMENT欄位的顯示寬度也為 1024 個字元,以符合此限制。NODEGROUP這是分割所屬的節點群組。對於 NDB Cluster 表格,這永遠是
default。對於使用NDB以外的儲存引擎的已分割表格,該值也為default。否則,此欄位為空。TABLESPACE_NAME分割所屬的表空間名稱。除非表格使用
NDB儲存引擎(請參閱本節末尾的 Notes),否則此值永遠為DEFAULT。
注意事項
PARTITIONS是一個非標準的INFORMATION_SCHEMA表格。使用
NDB以外的任何儲存引擎且未分割的表格,在PARTITIONS表格中會有一列。但是,PARTITION_NAME、SUBPARTITION_NAME、PARTITION_ORDINAL_POSITION、SUBPARTITION_ORDINAL_POSITION、PARTITION_METHOD、SUBPARTITION_METHOD、PARTITION_EXPRESSION、SUBPARTITION_EXPRESSION和PARTITION_DESCRIPTION欄位的值均為NULL。此外,在這種情況下,PARTITION_COMMENT欄位為空白。未明確分割的
NDB表格,在PARTITIONS表格中,NDB 叢集中的每個資料節點都會有一列。對於每一列:SUBPARTITION_NAME、SUBPARTITION_ORDINAL_POSITION、SUBPARTITION_METHOD、PARTITION_EXPRESSION、SUBPARTITION_EXPRESSION、CREATE_TIME、UPDATE_TIME、CHECK_TIME、CHECKSUM和TABLESPACE_NAME欄位的值均為NULL。PARTITION_METHOD永遠為AUTO。NODEGROUP欄位為default。PARTITION_COMMENT欄位為空。