Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  MySQL Data Dictionary  /  INFORMATION_SCHEMA and Data Dictionary Integration

16.5 信息模式和数据字典集成

随着数据字典的引入,以下 INFORMATION_SCHEMA 表现在是基于数据字典表的视图:

Queries on those tables are now more efficient because they obtain information from data dictionary tables rather than by other, slower means. In particular, for each INFORMATION_SCHEMA table that is a view on data dictionary tables:

  • 服务器不再需要为每个 INFORMATION_SCHEMA 表查询创建临时表。

  • 当基础数据字典表存储以前通过目录扫描(例如枚举数据库名称或数据库中的表名称)或文件打开操作(例如从 .frm 文件中读取信息)获得的值时,INFORMATION_SCHEMA 查询现在使用表查找代替。(此外,即使对于非视图 INFORMATION_SCHEMA 表,值如数据库和表名称也通过从数据字典中查找而不是通过目录或文件扫描来检索。)

  • 基础数据字典表上的索引允许优化器构建高效的查询执行计划,这与之前使用临时表处理 INFORMATION_SCHEMA 表的实现不同。

前面的改进也适用于显示与 INFORMATION_SCHEMA 表对应信息的 SHOW 语句。例如,SHOW DATABASES 显示与 SCHEMATA 表相同的信息。

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

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

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

MySQL 8.3 中的 INFORMATION_SCHEMA 表紧密地与数据字典相关,从而导致了几种使用差异。请参阅 第 16.7 节,“数据字典使用差异”