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
儲存引擎(請參閱本節末尾的附註),否則該值始終為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
欄位為空。