的统计数据
Table提供关于表索引的信息。
列统计数据
表示保存缓存值的表统计信息。的information_schema_stats_expiry
系统变量定义缓存表统计信息过期前的时间段。默认值是86400秒(24小时)。如果没有缓存的统计信息或统计信息已过期,则在查询表统计信息列时从存储引擎检索统计信息。若要随时更新给定表的缓存值,请使用分析表
.若要始终直接从存储引擎检索最新统计信息,请设置information_schema_stats_expiry = 0
.有关更多信息,请参见第8.2.3节“优化INFORMATION_SCHEMA查询”.
如果innodb_read_only
系统变量已启用,分析表
可能失败,因为它不能更新统计表在数据字典,使用哪InnoDB
.为分析表
更新键分布的操作,即使该操作更新了表本身(例如,如果它是一个MyISAM
表)。若要获取更新的分布统计信息,请设置information_schema_stats_expiry = 0
.
的统计数据
表有这些列:
TABLE_CATALOG
包含索引的表所属的目录的名称。这个值总是
def
.TABLE_SCHEMA
包含索引的表所属的模式(数据库)的名称。
TABLE_NAME
包含索引的表的名称。
NON_UNIQUE
如果索引不能包含重复项,则为0,如果可以,则为1。
INDEX_SCHEMA
索引所属的模式(数据库)的名称。
INDEX_NAME
索引的名称。如果索引是主键,则名称总是
主要的
.SEQ_IN_INDEX
索引中的列序列号,从1开始。
COLUMN_NAME
列名。的描述
表达式
列。排序
在索引中如何对列排序。这可以有值
一个
(提升)D
(降序),或零
(不排序)。基数
对索引中唯一值数量的估计。要更新此号码,请运行
分析表
或(MyISAM
表)myisamchk——.基数
根据存储为整数的统计信息进行计数,因此即使对于小表,值也不一定准确。基数越高,MySQL在执行连接时使用索引的几率就越大。SUB_PART
该指数前缀。也就是说,如果列只被部分索引,则索引字符的数量,
零
如果索引了整个列。请注意前缀限制都是以字节为单位的。然而,前缀长度有关索引规格,请参阅
创建表
,ALTER TABLE
,创建索引
语句被解释为非二进制字符串类型的字符数(字符
,VARCHAR
,文本
)和二进制字符串类型的字节数(二进制
,VARBINARY
,团
).在为使用多字节字符集的非二进制字符串列指定前缀长度时,要考虑到这一点。有关索引前缀的更多信息,请参见第8.3.5节“列索引”,第13.1.15节“CREATE INDEX语句”.
包装
指示密钥的包装方式。
零
如果不是。可以为空
包含
是的
如果列中可能包含零
价值观和”
如果不是。INDEX_TYPE
使用的索引方法(
BTREE
,全文
,哈希
,RTREE
).评论
关于索引的信息没有在它自己的列中描述,例如
禁用
如果索引被禁用。INDEX_COMMENT
类为索引提供的任何注释
评论
属性。IS_VISIBLE
索引对优化器是否可见。看到第8.3.12节“隐形索引”.
表达式
MySQL 8.0.13及更高版本支持功能关键部分(参见功能的关键部分),这会影响
COLUMN_NAME
而且表达式
列:对于非功能关键部分,
COLUMN_NAME
指示由键部分和索引的列表达式
是零
.对于功能关键部分,
COLUMN_NAME
列是零
而且表达式
表示关键部分的表达式。
笔记
没有标准
INFORMATION_SCHEMA
表的索引。MySQL列列表类似于SQL Server 2000返回的结果sp_statistics
,除了限定符
而且老板
被替换成目录
而且模式
,分别。
关于表索引的信息也可以从显示指数
声明。看到第13.7.7.22节,“SHOW INDEX语句”.以下表述是等价的:
从information_schema中选择*。table_name = 'tbl_name' AND table_schema = 'db_nameshow index fromtbl_name从db_name