28.4.20 INFORMATION_SCHEMA INNODB_INDEXES 表
INNODB_INDEXES 表提供了关于 InnoDB 索引的元数据。
有关使用信息和示例,请参见第17.15.3节,“InnoDB INFORMATION_SCHEMA Schema Object Tables”。
INNODB_INDEXES 表具有以下列:
-
INDEX_ID
索引的标识符。索引标识符在实例中的所有数据库中都是唯一的。
-
NAME
索引的名称。 InnoDB 创建的隐式索引大多数具有一致的名称,但索引名称不一定是唯一的。例如:
PRIMARY
为主键索引,GEN_CLUST_INDEX
为表示主键的索引(如果未指定),ID_IND
、FOR_IND
和REF_IND
为外键约束。 -
TABLE_ID
表示与索引相关的表的标识符;与
INNODB_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系统表空间。任何其他数字都表示使用文件-per-表模式创建的单独.ibd文件。这个标识符在
TRUNCATE TABLE
语句执行后保持不变。由于一个表中的所有索引都位于该表的同一表空间中,这个值并不一定是唯一的。 -
MERGE_THRESHOLD
索引页合并阈值。删除或更新操作使索引页中的数据量低于
MERGE_THRESHOLD
值时,InnoDB
将尝试合并索引页与邻近索引页。默认阈值为50%。更多信息,请见第17.8.11节,“Configuring the Merge Threshold for Index Pages”。
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
-
您需要拥有
PROCESS
特权以查询该表。 -
使用
INFORMATION_SCHEMA
COLUMNS
表或SHOW COLUMNS
语句来查看该表的列信息,包括数据类型和默认值。