字典对象缓存
字典对象高速缓存是一个共享的全局高速缓存,该高速缓存将以前访问的数据字典对象存储在内存中,以使对象可以重用并最小化磁盘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。
有关字典对象缓存配置选项的有效值的信息,请参见“服务器系统变量”。