Spec-Zone.ru › MySQL 8.4

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

    Одно из значений 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;
    

    Столбец PARTITION_EXPRESSION в строке таблицы PARTITIONS для раздела из этой таблицы отображает 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, и оно может не всегда быть точным.

    Для таблиц 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

    Имя табличного пространства, к которому принадлежит раздел. Значение всегда DEFAULT, если таблица не использует движок хранения NDB (см. Примечания в конце этого раздела).

Примечания

  • 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 пуст.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/information-schema-partitions-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API