Documentation Home
MySQL 8.0 参考手册  / 第 26 章 INFORMATION_SCHEMA 表  / 26.4 INFORMATION_SCHEMA InnoDB 表  /  21.4.22 INFORMATION_SCHEMA INNODB_SYS_INDEXES 表

21.4.22 INFORMATION_SCHEMA INNODB_SYS_INDEXES 表

INNODB_SYS_INDEXES表提供了索引的元数据 ,InnoDB相当于数据字典 中内SYS_INDEXES 表的信息。InnoDB

有关相关的使用信息和示例,请参阅 第 14.15.3 节,“InnoDB INFORMATION_SCHEMA 系统表”

INNODB_SYS_INDEXES表有以下列:

  • INDEX_ID

    索引的标识符。索引标识符在一个实例中的所有数据库中是唯一的。

  • NAME

    索引的名称。隐式创建的大多数索引 InnoDB具有一致的名称,但索引名称不一定是唯一的。示例: PRIMARY对于主键索引, GEN_CLUST_INDEX对于未指定时表示主键的索引 ID_INDFOR_IND以及 REF_IND对于外键约束。

  • TABLE_ID

    表示与索引关联的表的标识符;与 相同的值 INNODB_SYS_TABLES.TABLE_ID

  • TYPE

    从标识索引类型的位级信息派生的数值。0 = 非唯一二级索引;1 = 自动生成聚集索引 ( GEN_CLUST_INDEX); 2 = 唯一非聚集索引;3 = 聚簇索引;32 = 全文索引

  • N_FIELDS

    索引键中的列数。对于 GEN_CLUST_INDEX索引,该值为 0,因为索引是使用人工值而不是真实的表列创建的。

  • PAGE_NO

    索引 B 树的根页码。对于全文索引,该PAGE_NO列未使用并设置为 -1 ( FIL_NULL),因为全文索引布局在多个 B 树(辅助表)中。

  • SPACE

    索引所在的表空间的标识符。0 表示InnoDB 系统表空间任何其他数字表示在每个表文件模式下使用单独.ibd文件 创建的表 。此标识符在语句后保持不变 。因为一个表的所有索引都驻留在与该表相同的表空间中,所以该值不一定是唯一的。 TRUNCATE TABLE

例子

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES WHERE TABLE_ID = 74\G
*************************** 1. row ***************************
INDEX_ID: 116
    NAME: GEN_CLUST_INDEX
TABLE_ID: 74
    TYPE: 1
N_FIELDS: 0
 PAGE_NO: 3
   SPACE: 60
*************************** 2. row ***************************
INDEX_ID: 117
    NAME: i1
TABLE_ID: 74
    TYPE: 0
N_FIELDS: 1
 PAGE_NO: 4
   SPACE: 60

笔记

  • 您必须具有PROCESS 查询此表的权限。

  • 使用INFORMATION_SCHEMA COLUMNS表或 SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。