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_IDAn identifier for the index. Index identifiers are unique across all the databases in an instance.
-
NAMEThe name of the index. Most indexes created implicitly by
InnoDBhave consistent names but the index names are not necessarily unique. Examples:PRIMARYfor a primary key index,GEN_CLUST_INDEXfor the index representing a primary key when one is not specified, andID_IND,FOR_IND, andREF_INDfor foreign key constraints. -
TABLE_IDAn identifier representing the table associated with the index; the same value as
INNODB_TABLES.TABLE_ID. -
TYPEA 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_FIELDSThe number of columns in the index key. For
GEN_CLUST_INDEXindexes, this value is 0 because the index is created using an artificial value rather than a real table column. -
PAGE_NOThe root page number of the index B-tree. For full-text indexes, the
PAGE_NOcolumn is unused and set to -1 (FIL_NULL) because the full-text index is laid out in several B-trees (auxiliary tables). -
SPACEAn identifier for the tablespace where the index resides. 0 means the
InnoDBsystem tablespace. Any other number represents a table created with a separate.ibdfile in file-per-table mode. This identifier stays the same after aTRUNCATE TABLEstatement. Because all indexes for a table reside in the same tablespace as the table, this value is not necessarily unique. -
MERGE_THRESHOLDThe merge threshold value for index pages. If the amount of data in an index page falls below the
MERGE_THRESHOLDvalue when a row is deleted or when a row is shortened by an update operation,InnoDBattempts 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
PROCESSprivilege to query this table. -
Use the
INFORMATION_SCHEMACOLUMNStable or theSHOW COLUMNSstatement to view additional information about the columns of this table, including data types and default values.