STATISTICS 表提供 有关表索引的信息。
STATISTICS 中表示 表统计信息保存缓存的值。information_schema_stats_expiry 系统变量定义缓存表之前的时间段 统计信息过期。默认值为 86400 秒(24 小时)。如果 没有缓存的统计信息或统计信息已过期, 查询表时,从存储引擎中检索统计信息 统计信息列。要随时更新 给定的表,请使用 ANALYZE TABLE。自 始终直接从存储中检索最新的统计信息 引擎,设置为 information_schema_stats_expiry=0。 有关详细信息,请参见第 10.2.3 节 “优化 INFORMATION_SCHEMA 查询”。
注意
如果 innodb_read_only 系统 变量启用,ANALYZE TABLE 可能会失败,因为它无法更新统计信息 数据字典中的表,其中使用 .对于 ANALYZE 更新键分布的 TABLE 操作, 即使操作更新了表本身,也可能发生失败 (例如,如果它是一个表)。自 获取更新的分布统计信息,设置 information_schema_stats_expiry=0。InnoDB``MyISAM
STATISTICS 表包含以下内容 列:
-
TABLE_CATALOG包含该目录的表所属的目录的名称 索引属于。此值始终为 。
def -
TABLE_SCHEMA表所到的架构(数据库)的名称 包含索引所属。
-
TABLE_NAME包含索引的表的名称。
-
NON_UNIQUE如果索引不能包含重复项,则为 0,如果可以,则为 1。
-
INDEX_SCHEMA索引所属的架构(数据库)的名称。
-
INDEX_NAME索引的名称。如果索引是主键,则 name 始终是 。
PRIMARY -
SEQ_IN_INDEX索引中的列序列号,从 1 开始。
-
COLUMN_NAME列名。另请参阅列的说明。
EXPRESSION -
COLLATION列在索引中的排序方式。它可以有值(升序)、(降序)或(未排序)。
A``D``NULL -
CARDINALITY索引中唯一值数的估计值。自 更新此数字,运行
ANALYZE TABLE或(对于表)myisamchk -a。MyISAMCARDINALITY是根据统计数据统计的 存储为整数,因此该值即使不一定准确 适用于小桌子。基数越高,基数越大 MySQL在执行连接时使用索引的机会。 -
SUB_PART索引前缀。也就是说,如果出现以下情况,则索引字符数 如果满足以下条件,则仅对列进行部分索引 对整个列进行索引。
NULL注意
前缀限制以字节为单位。 但是,索引的前缀长度
CREATE中的规范 表、更改表、 和CREATE INDEX语句 被解释为非二进制字符串的字符数 的类型(CHAR、VARCHAR、TEXT)和字节数 二进制字符串类型(BINARY、VARBINARY、BLOB)。考虑到这一点 为非二进制字符串指定前缀长度时 使用多字节字符集的列。有关索引前缀的其他信息,请参见第 10.3.5 节 “列索引”和第 15.1.15 节 “CREATE INDEX 语句”。
-
PACKED指示密钥的打包方式。 如果它 莫。
NULL -
NULLABLE包含列是否可能包含值,以及如果 不。
YES``NULL``'' -
INDEX_TYPE使用的索引方法(、、、)。
BTREE``FULLTEXT``HASH``RTREE -
COMMENT有关索引的信息未在其自己的列中描述, 例如,如果索引被禁用。
disabled -
INDEX_COMMENT当索引为 创建。
COMMENT -
IS_VISIBLE索引对优化器是否可见。请参见第 10.3.12 节 “不可见索引”。
-
EXPRESSIONMySQL 8.0.13 及更高版本支持功能关键部件(参见功能关键部件),其中 影响 和 列:
COLUMN_NAME``EXPRESSION- 对于不起作用的键部件,指示列 按键部分索引,并且是 。
COLUMN_NAME``EXPRESSION``NULL - 对于功能键部件,column 是 和 表示 的表达式 关键部分。
COLUMN_NAME``NULL``EXPRESSION
- 对于不起作用的键部件,指示列 按键部分索引,并且是 。
笔记
- 索引没有标准表。MySQL列列表类似于 SQL Server 2000 返回 、 除了 和 被替换为 和 , 分别。
INFORMATION_SCHEMA``sp_statistics``QUALIFIER``OWNER``CATALOG``SCHEMA
还可以从 SHOW INDEX 语句中获取有关表索引的信息。请参见第 15.7.7.22 节“ SHOW INDEX 语句”。以下声明是 等效:
SELECT * FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = 'tbl_name'
AND table_schema = 'db_name'
SHOW INDEX
FROM tbl_name
FROM db_name
在 MySQL 8.0.30 及更高版本中,有关生成的信息不可见 默认情况下,主键列在此表中可见。您可以 通过设置show_gipk_in_create_table_and_information_schema导致隐藏此类信息= 关闭。有关更多信息,请参见第 15.1.20.11 节 “生成的不可见主键”。




