Skip to main content
这些设置可在 system.settings 中查看,并由 源代码 自动生成。

query_cache_compress_entries

压缩查询缓存中的条目。这样可以减少查询缓存的内存占用,但代价是向其中插入数据和从中读取数据都会变慢。 可能的值:
  • 0 - 已禁用
  • 1 - 已启用

query_cache_for_subqueries

启用后,子查询结果可以写入并从查询缓存中读取。这会将 use_query_cache 传递到所有子查询。 可能的值:
  • 0 - 已禁用
  • 1 - 已启用

query_cache_max_entries

当前用户可在内存查询缓存中存储的查询结果的最大条目数。0 表示不受限制。 此限制不适用于磁盘查询缓存 (由设置 query_cache_on_disk_cache_name 指定) ,其条目数量转而受底层文件系统缓存大小的限制。 可选值:
  • 大于等于 0 的正整数。

query_cache_max_size_in_bytes

当前用户可在内存查询缓存中分配的最大内存量 (以字节为单位) 。0 表示不受限制。 此限制不适用于磁盘查询缓存 (通过设置 query_cache_on_disk_cache_name 配置) ,其条目大小转而受底层文件系统缓存大小的限制。 可选值:
  • 大于或等于 0 的整数。

query_cache_min_query_duration

查询至少需要运行多长时间 (以毫秒为单位) ,其结果才会被存储到查询缓存中。 可能的值:
  • 大于等于 0 的整数。

query_cache_min_query_runs

SELECT 查询的结果在存入 查询缓存 之前,至少需要运行的次数。 可能的值:
  • 大于等于 0 的整数。

query_cache_nondeterministic_function_handling

控制查询缓存如何处理包含 rand()、now() 等非确定性函数的 SELECT 查询。 可选值:
  • 'throw' - 抛出异常,并且不缓存查询结果。
  • 'save' - 缓存查询结果。
  • 'ignore' - 不缓存查询结果,也不抛出异常。

query_cache_on_disk_cache_name

用于在磁盘上存储查询缓存条目的文件系统缓存名称 (即服务器配置中 filesystem_caches 部分下的某个条目) 。如果指定了名称 (且已启用 use_query_cache) ,查询结果还会额外缓存到该文件系统缓存中,并可从中读取。与内存查询缓存相比,磁盘查询缓存容量更大,服务器重启后数据依然保留,并且独立于内存查询缓存运行:可通过设置 enable_reads_from_query_cache_on_disk 和 enable_writes_to_query_cache_on_disk 单独控制磁盘查询缓存,而不影响内存查询缓存。这些条目在文件系统缓存中与普通条目无异:不会受到删除保护,并与缓存中的其他数据遵循相同的淘汰规则。SYSTEM CLEAR FILESYSTEM CACHE '<name>' 会将它们与文件系统缓存中的其他所有内容一并清除;而 SYSTEM CLEAR QUERY CACHE 只会从该设置指定的文件系统缓存中删除磁盘查询缓存条目,其他数据保持不变。建议为查询结果单独配置专用的文件系统缓存。 可选值:
  • 空字符串 - 禁用磁盘查询缓存
  • 预先配置的文件系统缓存名称

query_cache_on_disk_codec

查询缓存条目在磁盘上存储时所使用的压缩编解码器 (参见 query_cache_on_disk_cache_name) 。此设置仅作用于写入;由于压缩数据是自描述的,读取不受该设置影响。

query_cache_share_between_users

启用后,缓存在 查询缓存 中的 SELECT 查询结果可供其他用户读取。 基于安全考虑,不建议启用此设置。 可能的值:
  • 0 - 已禁用
  • 1 - 已启用

query_cache_squash_partial_results

将部分结果块合并成大小为 max_block_size 的块。这样会降低向查询缓存插入数据的性能,但能提升缓存条目的压缩效果 (参见 query_cache_compress-entries) 。 可能的值:
  • 0 - 已禁用
  • 1 - 已启用

query_cache_system_table_handling

控制查询缓存在处理针对系统表的 SELECT 查询时的行为,即针对 system.* 和 information_schema.* 数据库中表的查询。 可选值:
  • 'throw' - 抛出异常,并且不缓存查询结果。
  • 'save' - 缓存查询结果。
  • 'ignore' - 不缓存查询结果,也不抛出异常。

query_cache_tag

一个字符串,用作查询缓存条目的标签。 对于相同的查询,如果标签不同,查询缓存会将其视为不同的查询。 可能的值:
  • 任意字符串

query_cache_ttl

超过此秒数后,查询缓存中的条目将过期。 可选值:
  • 正整数 >= 0。
最后修改于 2026年8月14日