24.4.22 Таблица INFORMATION_SCHEMA INNODB_SYS_INDEXES
Таблица INNODB_SYS_INDEXES предоставляет метаданные об InnoDB индексах, эквивалентные информации в внутренней SYS_INDEXES таблице в словаре данных InnoDB.
Для получения информации о связанном использовании и примеров см. Раздел 14.16.3, «Таблицы системы InnoDB INFORMATION_SCHEMA».
В таблице INNODB_SYS_INDEXES содержатся следующие столбцы:
-
INDEX_IDИдентификатор индекса. Идентификаторы индексов уникальны во всех базах данных экземпляра.
-
NAMEНазвание индекса. Большинство индексов, созданных неявно
InnoDB, имеют согласованные имена, но имена индексов не обязательно уникальны. Примеры:PRIMARYдля индекса первичного ключа,GEN_CLUST_INDEXдля индекса, представляющего первичный ключ, когда он не указан, иID_IND,FOR_INDиREF_INDдля ограничений внешнего ключа. -
TABLE_IDИдентификатор, представляющий таблицу, связанную с индексом; то же значение, что и
INNODB_SYS_TABLES.TABLE_ID. -
TYPEЧисловое значение, полученное из информации на уровне битов, которое идентифицирует тип индекса. 0 = неуникальный вторичный индекс; 1 = автоматически сгенерированный кластеризованный индекс (
GEN_CLUST_INDEX); 2 = уникальный некластеризованный индекс; 3 = кластеризованный индекс; 32 = полнотекстовый индекс; 64 = пространственный индекс; 128 = вторичный индекс на . -
N_FIELDSКоличество столбцов в ключе индекса. Для
GEN_CLUST_INDEXиндексов это значение равно 0, поскольку индекс создается с использованием искусственного значения, а не реального столбца таблицы. -
PAGE_NOНомер корневой страницы индексного B-дерева. Для полнотекстовых индексов столбец
PAGE_NOне используется и устанавливается в -1 (FIL_NULL), поскольку полнотекстовый индекс организован в нескольких B-деревьях (вспомогательные таблицы). -
SPACEИдентификатор пространства таблиц, где находится индекс. 0 означает
InnoDB. Любое другое число представляет таблицу, созданную с отдельным файлом.ibdв режиме. Этот идентификатор сохраняется после оператораTRUNCATE TABLE. Поскольку все индексы для таблицы находятся в том же пространстве таблиц, что и таблица, это значение не обязательно уникально. -
MERGE_THRESHOLDЗначение порога слияния для страниц индекса. Если объем данных на странице индекса опускается ниже значения
MERGE_THRESHOLDпри удалении строки или при сокращении строки операцией обновления,InnoDBпытается слить страницу индекса с соседней страницей индекса. Значение порога по умолчанию составляет 50%. Дополнительную информацию см. в Разделе 14.8.12, «Настройка порога слияния для страниц индекса».
Пример
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES WHERE TABLE_ID = 34\G
*************************** 1. row ***************************
INDEX_ID: 39
NAME: GEN_CLUST_INDEX
TABLE_ID: 34
TYPE: 1
N_FIELDS: 0
PAGE_NO: 3
SPACE: 23
MERGE_THRESHOLD: 50
*************************** 2. row ***************************
INDEX_ID: 40
NAME: i1
TABLE_ID: 34
TYPE: 0
N_FIELDS: 1
PAGE_NO: 4
SPACE: 23
MERGE_THRESHOLD: 50
Примечания
Для запроса этой таблицы необходимо иметь право
PROCESS.Используйте таблицу
INFORMATION_SCHEMACOLUMNSили операторSHOW COLUMNSдля просмотра дополнительной информации о столбцах этой таблицы, включая типы данных и значения по умолчанию.
© 2025 Oracle
Licensed under the GPLv2 License.