词典对象缓存是一个共享的全局缓存,用于存储以前访问的数据词典对象,以便对象重用和最小化磁盘I/O。类似于MySQL使用的其他缓存机制,词典对象缓存使用基于LRU的驱逐策略来驱逐最少最近使用的对象从内存中。
词典对象缓存由存储不同对象类型的缓存分区组成。一些缓存分区大小限制是可配置的,而其他的是硬编码的。
-
表空间定义缓存分区: 存储表空间定义对象。
tablespace_definition_cache
选项设置了可以存储在词典对象缓存中的表空间定义对象的数量限制。默认值为256。 -
模式定义缓存分区: 存储模式定义对象。
schema_definition_cache
选项设置了可以存储在词典对象缓存中的模式定义对象的数量限制。默认值为256。 -
表定义缓存分区: 存储表定义对象。对象限制设置为
max_connections
的值,该值的默认值为151。表定义缓存分区与使用
table_definition_cache
配置选项配置的表定义缓存并行存在。两个缓存都存储表定义,但服务于MySQL服务器的不同部分。一个缓存中的对象不存在于另一个缓存中的对象。 -
存储程序定义缓存分区: 存储存储程序定义对象。
stored_program_definition_cache
选项设置了可以存储在词典对象缓存中的存储程序定义对象的数量限制。默认值为256。存储程序定义缓存分区与使用
stored_program_cache
选项配置的存储过程和存储函数缓存并行存在。stored_program_cache
选项设置了每个连接的存储过程或函数的软上限,每次连接执行存储过程或函数时都会检查该限制。存储程序定义缓存分区是共享缓存,用于存储存储程序定义对象,以便其他目的。存储程序定义缓存分区中的对象存在与存储过程缓存或存储函数缓存中的对象存在无关。 -
字符集定义缓存分区: 存储字符集定义对象,具有硬编码的对象限制为 256。
-
排序定义缓存分区: 存储排序定义对象,具有硬编码的对象限制为 256。
有关词典对象缓存配置选项的有效值的信息,请参阅 第 7.1.8 节,“服务器系统变量”。