INNODB_SYS_INDEXES
表提供了索引的元数据
,InnoDB
相当于数据字典
中内SYS_INDEXES
表的信息。InnoDB
有关相关的使用信息和示例,请参阅 第 14.16.3 节,“InnoDB INFORMATION_SCHEMA 系统表”。
该INNODB_SYS_INDEXES
表有以下列:
INDEX_ID
索引的标识符。索引标识符在一个实例中的所有数据库中是唯一的。
NAME
索引的名称。隐式创建的大多数索引
InnoDB
具有一致的名称,但索引名称不一定是唯一的。示例:PRIMARY
对于主键索引,GEN_CLUST_INDEX
对于未指定时表示主键的索引ID_IND
,FOR_IND
以及REF_IND
对于外键约束。TABLE_ID
表示与索引关联的表的标识符;与 相同的值
INNODB_SYS_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
系统表空间。任何其他数字表示在每个表文件模式下使用单独.ibd
文件 创建的表 。此标识符在语句后保持不变 。因为一个表的所有索引都驻留在与该表相同的表空间中,所以该值不一定是唯一的。TRUNCATE TABLE
MERGE_THRESHOLD
索引页的合并阈值。
MERGE_THRESHOLD
如果在删除行或通过更新操作缩短行时索引页中的数据量低于该 值,则InnoDB
尝试将索引页与相邻索引页合并。默认阈值为 50%。有关详细信息,请参阅 第 14.8.12 节,“为索引页配置合并阈值”。
例子
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
笔记
您必须具有
PROCESS
查询此表的权限。使用
INFORMATION_SCHEMA
COLUMNS
表或SHOW COLUMNS
语句查看有关此表的列的其他信息,包括数据类型和默认值。