Py学习  »  DATABASE

如何检查MySql中的数据字典大小

vinieth • 5 年前 • 1465 次点击  

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

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

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

MySql版本-5.7.18

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49843
 
1465 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Rick James
Reply   •   1 楼
Rick James    6 年前

这些变量可能相关:

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 是“动态的”

这些全局状态值可能相关:

Open_table_definitions
Opened_table_definitions
Opened_tables
Opened_files
Table_open_cache_hits
Table_open_cache_misses
Table_open_cache_overflows

命中/未命中/溢出为您提供了关于 表缓存 足够大,但不是最佳尺寸。

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

也可以看到像 performance_schema_max_table_handles .

Ravi Chauhan
Reply   •   2 楼
Ravi Chauhan    6 年前

可以存储在定义缓存中的表定义数。如果使用大量表,则可以创建大型表定义缓存以加快表的打开速度。与普通表缓存不同,表定义缓存占用的空间较少,并且不使用文件描述符。最小值是400。默认值基于以下公式,上限为2000:

MIN(400 + table_open_cache / 2, 2000)

更多细节请点击此处 https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_table_definition_cache