文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  INFORMATION_SCHEMA PARTITIONS 表格

28.3.21 INFORMATION_SCHEMA PARTITIONS 表格

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

    值為 RANGELISTHASHLINEAR HASHKEYLINEAR KEY 其中之一;也就是說,第 26.2 節,「分割區類型」中討論的可用分割區類型其中之一。

  • SUBPARTITION_METHOD

    值為 HASHLINEAR HASHKEYLINEAR KEY 其中之一;也就是說,第 26.2.6 節,「子分割區」中討論的可用子分割區類型其中之一。

  • PARTITION_EXPRESSION

    用於建立表格目前分割區配置的 CREATE TABLEALTER 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 不是 RANGELIST 的分區,此欄位始終為 NULL

  • TABLE_ROWS

    分區中的資料表列數。

    對於分區的 InnoDB 資料表,TABLE_ROWS 欄位中給出的列計數僅為 SQL 優化中使用的估計值,可能不總是準確的。

    對於 NDB 資料表,您也可以使用 ndb_desc 公用程式取得此資訊。

  • AVG_ROW_LENGTH

    儲存在此分區或子分區中的列的平均長度(以位元組為單位)。這與 DATA_LENGTH 除以 TABLE_ROWS 的結果相同。

    對於 NDB 資料表,您也可以使用 ndb_desc 公用程式取得此資訊。

  • DATA_LENGTH

    儲存在此分區或子分區中的所有列的總長度(以位元組為單位);也就是說,儲存在分區或子分區中的總位元組數。

    對於 NDB 資料表,您也可以使用 ndb_desc 公用程式取得此資訊。

  • MAX_DATA_LENGTH

    可以儲存在此分區或子分區中的最大位元組數。

    對於 NDB 資料表,您也可以使用 ndb_desc 公用程式取得此資訊。

  • INDEX_LENGTH

    此分區或子分區的索引檔長度(以位元組為單位)。

    對於 NDB 資料表的分區,無論資料表使用隱式或顯式分區,INDEX_LENGTH 欄位值始終為 0。但是,您可以使用 ndb_desc 公用程式取得等效的資訊。

  • DATA_FREE

    分配給分區或子分區但未使用的位元組數。

    對於 NDB 資料表,您也可以使用 ndb_desc 公用程式取得此資訊。

  • 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_NAMESUBPARTITION_NAMEPARTITION_ORDINAL_POSITIONSUBPARTITION_ORDINAL_POSITIONPARTITION_METHODSUBPARTITION_METHODPARTITION_EXPRESSIONSUBPARTITION_EXPRESSIONPARTITION_DESCRIPTION 欄位的值均為 NULL。此外,在這種情況下,PARTITION_COMMENT 欄位為空白。

  • 一個未明確分區的 NDB 資料表在 PARTITIONS 資料表中,對應 NDB 叢集中每個資料節點都有一列。對於每一列,

    • SUBPARTITION_NAMESUBPARTITION_ORDINAL_POSITIONSUBPARTITION_METHODPARTITION_EXPRESSIONSUBPARTITION_EXPRESSIONCREATE_TIMEUPDATE_TIMECHECK_TIMECHECKSUMTABLESPACE_NAME 欄位的值均為 NULL

    • PARTITION_METHOD 始終為 AUTO

    • NODEGROUP 欄位為 default

    • PARTITION_COMMENT 欄位為空。