24.32.21 INFORMATION_SCHEMA INNODB_SYS_INDEXEStable

INNODB_SYS_INDEXEStable 提供有关InnoDB索引的元数据,等效于InnoDB数据字典中内部SYS_INDEXEStable 中的信息。

有关相关用法信息和示例,请参见第 14.16.3 节“ InnoDB INFORMATION_SCHEMA 系统 table”

INNODB_SYS_INDEXEStable 具有以下列:

  • INDEX_ID

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

  • NAME

索引名称。 InnoDB隐式创建的大多数索引具有一致的名称,但是索引名称不一定是唯一的。示例:PRIMARYtable 示主键索引,GEN_CLUST_INDEXtable 示未指定主键的索引,ID_INDFOR_INDREF_INDtable 示外键约束。

  • TABLE_ID

代 table 与索引关联的 table 的标识符;与INNODB_SYS_TABLES.TABLE_ID相同的值。

  • TYPE

从标识索引类型的位级别信息派生的数字值。 0 =非唯一二级索引; 1 =自动生成的聚集索引(GEN_CLUST_INDEX); 2 =唯一非聚集索引; 3 =聚集索引; 32 =全文索引; 64 =空间索引; 128 = 虚拟生成的列上的二级索引。

  • N_FIELDS

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

  • PAGE_NO

索引 B 树的根页号。对于全文索引,未使用PAGE_NO列,而是将其设置为-1(FIL_NULL),因为全文索引位于多个 B 树(辅助 table)中。

  • SPACE

索引所在的 table 空间的标识符。 0table 示InnoDB system tablespace。其他任何数字都代 table 在file-per-table模式下使用单独的.ibd文件创建的 table。 TRUNCATE TABLE语句后,此标识符保持不变。由于 table 的所有索引都与该 table 位于同一 table 空间中,因此该值不一定是唯一的。

  • MERGE_THRESHOLD

索引页的合并阈值。如果在删除行或通过更新操作缩短行时索引页中的数据量低于MERGE_THRESHOLD值,则InnoDB尝试将索引页与相邻的索引页合并。默认阈值为 50%。有关更多信息,请参见第 14.8.12 节“为索引页面配置合并阈值”

Example

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

Notes

  • 您必须具有PROCESS特权才能查询此 table。

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