The INNODB_INDEXES
table provides metadata about InnoDB
indexes.
For related usage information and examples, see Section 17.15.3, “InnoDB INFORMATION_SCHEMA Schema Object Tables”.
The INNODB_INDEXES
table has these columns:
-
INDEX_ID
An identifier for the index. Index identifiers are unique across all the databases in an instance.
-
NAME
The name of the index. Most indexes created implicitly by
InnoDB
have consistent names but the index names are not necessarily unique. Examples:PRIMARY
for a primary key index,GEN_CLUST_INDEX
for the index representing a primary key when one is not specified, andID_IND
,FOR_IND
, andREF_IND
for foreign key constraints. -
TABLE_ID
An identifier representing the table associated with the index; the same value as
INNODB_TABLES.TABLE_ID
. -
TYPE
A numeric value derived from bit-level information that identifies the index type. 0 = nonunique secondary index; 1 = automatically generated clustered index (
GEN_CLUST_INDEX
); 2 = unique nonclustered index; 3 = clustered index; 32 = full-text index; 64 = spatial index; 128 = secondary index on a virtual generated column. -
N_FIELDS
The number of columns in the index key. For
GEN_CLUST_INDEX
indexes, this value is 0 because the index is created using an artificial value rather than a real table column. -
PAGE_NO
The root page number of the index B-tree. For full-text indexes, the
PAGE_NO
column is unused and set to -1 (FIL_NULL
) because the full-text index is laid out in several B-trees (auxiliary tables). -
SPACE
An identifier for the tablespace where the index resides. 0 means the
InnoDB
system tablespace. Any other number represents a table created with a separate.ibd
file in file-per-table mode. This identifier stays the same after aTRUNCATE TABLE
statement. Because all indexes for a table reside in the same tablespace as the table, this value is not necessarily unique. -
MERGE_THRESHOLD
The merge threshold value for index pages. If the amount of data in an index page falls below the
MERGE_THRESHOLD
value when a row is deleted or when a row is shortened by an update operation,InnoDB
attempts to merge the index page with the neighboring index page. The default threshold value is 50%. For more information, see Section 17.8.11, “Configuring the Merge Threshold for Index Pages”.
Example
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_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
Notes
-
You must have the
PROCESS
privilege to query this table. -
Use the
INFORMATION_SCHEMA
COLUMNS
table or theSHOW COLUMNS
statement to view additional information about the columns of this table, including data types and default values.