这些设置可在 system.settings 中查看,并由 源代码 自动生成。
query_cache_compress_entries
类型
Bool
默认值
1
压缩查询缓存中的条目。这样可以减少查询缓存的内存占用,但代价是向其中插入数据和从中读取数据都会变慢。
可能的值:
- 0 - 已禁用
- 1 - 已启用
query_cache_for_subqueries
类型
Bool
默认值
0
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.5 | 0 | 用于启用将 `use_query_cache` 传递到所有子查询的新设置。若未启用,子查询仅会在显式为该子查询设置 `SETTINGS use_query_cache = true` 时才会被缓存。 |
启用后,子查询结果可以写入并从查询缓存中读取。这会将 use_query_cache 传递到所有子查询。
可能的值:
- 0 - 已禁用
- 1 - 已启用
query_cache_max_entries
类型
UInt64
默认值
0
当前用户可在查询缓存中存储的查询结果的最大条目数。0 表示不受限制。
可能的值:
- 大于等于 0 的正整数。
query_cache_max_size_in_bytes
类型
UInt64
默认值
0
当前用户可在查询缓存中分配的最大内存量 (以字节为单位) 。0 表示不受限制。
可选值:
- 大于或等于 0 的整数。
query_cache_min_query_duration
类型
毫秒
默认值
0
查询至少需要运行多长时间 (以毫秒为单位) ,其结果才会被存储到查询缓存中。
可能的值:
- 大于等于 0 的整数。
query_cache_min_query_runs
类型
UInt64
默认值
0
SELECT 查询的结果在存入 查询缓存 之前,至少需要运行的次数。
可能的值:
- 大于等于 0 的整数。
query_cache_nondeterministic_function_handling
类型
QueryResultCacheNondeterministicFunctionHandling
默认值
throw
控制查询缓存如何处理包含 rand()、now() 等非确定性函数的 SELECT 查询。
可选值:
'throw'- 抛出异常,并且不缓存查询结果。'save'- 缓存查询结果。'ignore'- 不缓存查询结果,也不抛出异常。
类型
Bool
默认值
0
启用后,缓存在 查询缓存 中的 SELECT 查询结果可供其他用户读取。
基于安全考虑,不建议启用此设置。
可能的值:
- 0 - 已禁用
- 1 - 已启用
query_cache_squash_partial_results
类型
Bool
默认值
1
将部分结果块合并成大小为 max_block_size 的块。这样会降低向查询缓存插入数据的性能,但能提升缓存条目的压缩效果 (参见 query_cache_compress-entries) 。
可能的值:
- 0 - 已禁用
- 1 - 已启用
query_cache_system_table_handling
类型
QueryResultCacheSystemTableHandling
默认值
throw
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.4 | throw | 查询缓存不再缓存针对系统表的查询结果 |
控制查询缓存在处理针对系统表的 SELECT 查询时的行为,即针对 system.* 和 information_schema.* 数据库中表的查询。
可选值:
'throw'- 抛出异常,并且不缓存查询结果。'save'- 缓存查询结果。'ignore'- 不缓存查询结果,也不抛出异常。
query_cache_tag
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 24.8 | 用于为查询缓存设置添加标签的新设置。 |
一个字符串,用作查询缓存条目的标签。 对于相同的查询,如果标签不同,查询缓存会将其视为不同的查询。
可能的值:
- 任意字符串
query_cache_ttl
类型
Seconds
默认值
60
超过此秒数后,查询缓存中的条目将过期。
可选值:
- 正整数 >= 0。