同于 InnoDB 数据字典中 SYS_FIELDS 表的信息。 INNODB_SYS_INDEXES 表提供查询有关 InnoDB 索引的元数据信息,等同于 InnoDB 数据字典内部 SYS_INDEXES 表中的信息。 INNODB_SYS_TABLES 表提供查询有关 InnoDB 表的元数据信息,等同于 InnoDB 数据字典中 SYS_TABLES 表的信息。 假设需要查询 mysqladv 库下的 InnoDB 表 order_exp 的索引列名称、组成和 索引列顺序等相关信息,
    image.png
    则可以使用如下 SQL 语句进行查询

    1. select t.name as d_t_name,i.name as i_name ,i.type as i_type,i.N_FIELDS as i_column_numbers,f.name as i_column_name,f.pos as i_position from INNODB_SYS_TABLES as t join INNODB_SYS_INDEXES as i on t.TABLE_ID=i.TABLE_ID left join INNODB_SYS_FIELDS as f on i.INDEX_ID=f.INDEX_ID where t.name='mysqladv/order_exp';

    image.png
    结果中的列都很好理解,唯一需要解释的是 i_type(INNODB_SYS_INDEXES.type),它是表示索引类型的数字 ID,

    • 0 = 二级索引
    • 1 = 集群索引
    • 2 = 唯一索引
    • 3 = 主键索引
    • 32 = 全文索引
    • 64 = 空间索引
    • 128 = 包含虚拟生成列的二级索引