Spec-Zone.ru › MySQL 5.7

24.3.16 Таблица INFORMATION_SCHEMA PARTITIONS

Таблица PARTITIONS предоставляет информацию о разделах таблицы. Каждая строка в этой таблице соответствует отдельному разделу или подразделу разбиеной таблицы. Дополнительную информацию о разбиении таблиц см. в Главе 22, Разбиение.

Таблица PARTITIONS содержит следующие столбцы:

  • TABLE_CATALOG

    Имя каталога, к которому принадлежит таблица. Это значение всегда def.

  • TABLE_SCHEMA

    Имя схемы (базы данных), к которой принадлежит таблица.

  • TABLE_NAME

    Имя таблицы, содержащей раздел.

  • PARTITION_NAME

    Имя раздела.

  • SUBPARTITION_NAME

    Если строка таблицы PARTITIONS представляет подраздел, то имя подраздела; в противном случае NULL.

  • PARTITION_ORDINAL_POSITION

    Все разделы индексируются в том же порядке, что и определены, при этом 1 - номер, присвоенный первому разделу. Индексация может меняться по мере добавления, удаления и переорганизации разделов; показанное число в этом столбце отражает текущий порядок, с учетом любых изменений индексации.

  • SUBPARTITION_ORDINAL_POSITION

    Подразделы в данном разделе также индексируются и переиндексируются таким же образом, как разделы индексируются внутри таблицы.

  • PARTITION_METHOD

    Одно из значений RANGE, LIST, HASH, LINEAR HASH, KEY или LINEAR KEY; то есть один из доступных типов разбиения, как описано в Разделе 22.2, «Типы разбиения».

  • SUBPARTITION_METHOD

    Одно из значений HASH, LINEAR HASH, KEY или LINEAR KEY; то есть один из доступных типов подразделения, как описано в Разделе 22.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              |
    +----------------------+
    

    Для таблицы NDB, которая не явно разбита, этот столбец пуст. Для таблиц, использующих другие движки хранения и которые не разбиты, этот столбец 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, SUBPARTITION_EXPRESSION, CREATE_TIME, UPDATE_TIME, CHECK_TIME, CHECKSUM и TABLESPACE_NAME равны NULL.

    • Столбец PARTITION_METHOD всегда равен KEY.

    • Столбец NODEGROUP равен default.

    • Столбцы PARTITION_EXPRESSION и PARTITION_COMMENT пустые.

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

Spec-Zone.ru

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