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

[ACDU 翻译] MySQL14.5 INFORMATION_SCHEMA 和数据字典集成

原创 由迪 2022-01-19
475

随着数据字典的引入,以下 INFORMATION_SCHEMA表被实现为数据字典表的视图:

对这些表的查询现在更加高效,因为它们从数据字典表中获取信息,而不是通过其他更慢的方式。特别是,对于 INFORMATION_SCHEMA作为数据字典表视图的每个表:

  • 服务器不再必须为表的每个查询创建一个临时INFORMATION_SCHEMA表。
  • 当底层数据字典表存储先前通过目录扫描(例如,枚举数据库名称或数据库中的表名)或文件打开操作(例如,从 .frm文件中读取信息)获得的值时, INFORMATION_SCHEMA对这些值的查询现在使用 table而是查找。(此外,即使对于非视图INFORMATION_SCHEMA表,数据库和表名等值也是通过从数据字典中查找来检索的,并且不需要目录或文件扫描。)
  • 底层数据字典表上的索引允许优化器构建有效的查询执行计划,这对于之前INFORMATION_SCHEMA使用每个查询使用临时表处理表的实现来说是不正确的。

上述改进也适用于 SHOW显示与作为 INFORMATION_SCHEMA数据字典表视图的表相对应的信息的语句。例如,显示与表格 SHOW DATABASES相同的信息 。SCHEMATA

除了在数据字典表上引入视图, STATISTICSand TABLES表中包含的表统计信息现在被缓存以提高INFORMATION_SCHEMA查询性能。系统变量定义缓存表统计信息过期之前的 information_schema_stats_expiry 时间段。默认值为 86400 秒(24 小时)。如果没有缓存统计信息或统计信息已过期,则在查询表统计信息列时从存储引擎中检索统计信息。要随时更新给定表的缓存值,请使用ANALYZE TABLE

information_schema_stats_expiry 可以设置为0INFORMATION_SCHEMA查询直接从存储引擎中检索最新的统计信息,这不如检索缓存的统计信息快。

有关更多信息,请参阅 第 8.2.3 节,“优化 INFORMATION_SCHEMA 查询”

INFORMATION_SCHEMAMySQL 8.0 中的表与数据字典密切相关,导致使用上存在一些差异。请参阅 第 14.7 节,“数据字典使用差异”

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

评论