暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

28.3.34 INFORMATION_SCHEMA统计表

由迪 2024-08-08
112

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=0InnoDB``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 -aMyISAM

    CARDINALITY是根据统计数据统计的 存储为整数,因此该值即使不一定准确 适用于小桌子。基数越高,基数越大 MySQL在执行连接时使用索引的机会。

  • SUB_PART

    索引前缀。也就是说,如果出现以下情况,则索引字符数 如果满足以下条件,则仅对列进行部分索引 对整个列进行索引。NULL

    注意

    前缀限制以字节为单位。 但是,索引的前缀长度 CREATE中的规范 表更改表、 和 CREATE INDEX 语句 被解释为非二进制字符串的字符数 的类型(CHAR、VARCHAR、TEXT)和字节数 二进制字符串类型(BINARYVARBINARY、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 节 “不可见索引”。

  • EXPRESSION

    MySQL 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 节 “生成的不可见主键”。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论