首页 > 解决方案 > 如何检查 MySql 中的数据字典大小

问题描述

如何检查我当前的数据字典缓存大小?

仅供参考: -> 数据字典缓存-存储打开的表信息。这样数据字典缓存的增加取决于打开表的数量。

-> table_open_cache 是一个变量,它保存一个 mysql 可以拥有打开表总数的值。我询问当前数据字典的大小,其中包含打开表的数据。(当前数据字典大小的状态)。

MySql 版本 - 5.7.18

标签: mysqldatabasemysql-5.7

解决方案


这些变量可能是相关的:

table_open_cache
table_open_cache_instances
table_definition_cache
schema_definition_cache  (new in 8.0)
tablespace_definition_cache  (new in 8.0)

每个缓存都是固定大小的,可在启动时进行配置。(在某些情况下,在较新的版本上,它可以动态更改。)例如, 5.7的文档说,即table_open_cache“动态”

这些 GLOBAL STATUS 值可能是相关的:

Open_table_definitions
Opened_table_definitions
Opened_tables
Opened_files
Table_open_cache_hits
Table_open_cache_misses
Table_open_cache_overflows

hits/misses/overflows 为您提供了关于是否table_open_cache足够大的很好的线索,但不是最佳大小。

在 5.7 及之前的版本中,数据字典来自.frm分散在磁盘上的文件。在 8.0 中,它位于一组 InnoDB 表中。据推测,一个合适的查询可以提供一些相关的指标。

另请参阅performance_schema_max_table_handles之类的内容。


推荐阅读