optimizer_switch

最近更新时间:2025-04-22 15:40:03

我的收藏

功能描述

optimizer_switch用于设置优化器指示选项开关。

属性说明

属性
说明
参数类型
Set
默认值
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,use_invisible_indexes=off,skip_scan=on,lazy_index_strategy=off,limit_cond_pushdown=on,force_batched_key_access=false
取值范围
index_merge: 启用或禁用索引合并优化。
index_merge_union: 启用或禁用索引合并中的 UNION 优化。
index_merge_sort_union: 启用或禁用索引合并中的排序 UNION 优化。
index_merge_intersection: 启用或禁用索引合并中的交集优化。
engine_condition_pushdown: 启用或禁用存储引擎条件下推优化。
index_condition_pushdown: 启用或禁用索引条件下推优化。
mrr: 启用或禁用多范围读取优化。
mrr_cost_based: 启用或禁用基于成本的多范围读取优化。
block_nested_loop: 启用或禁用块嵌套循环连接优化。
batched_key_access: 启用或禁用批量键访问优化。
materialization: 启用或禁用物化子查询优化。
semijoin: 启用或禁用半连接优化。
loosescan: 启用或禁用松散扫描优化。
firstmatch: 启用或禁用第一个匹配优化。
duplicateweedout: 启用或禁用重复剔除优化。
subquery_materialization_cost_based: 启用或禁用基于成本的子查询物化优化。
use_index_extensions: 启用或禁用索引扩展优化。
condition_fanout_filter:启用或禁用条件扇出过滤优化。该优化用于减少在多表连接时的中间结果集大小,从而提高查询性能。
derived_merge:启用或禁用派生表合并优化。派生表合并优化会将派生表(子查询)合并到外部查询中,从而避免创建临时表。
use_invisible_indexes:启用或禁用使用不可见索引。不可见索引在查询优化器中被忽略,但仍然存在于表中。禁用该选项可以确保查询优化器不会使用这些索引。
skip_scan:启用或禁用跳过扫描优化。跳过扫描优化允许在索引扫描时跳过不必要的行,从而提高查询性能。
lazy_index_strategy:启用或禁用懒惰索引策略。懒惰索引策略会延迟索引的使用,直到确定索引确实有助于查询性能。
limit_cond_pushdown:启用或禁用 LIMIT 条件下推优化。该优化会将 LIMIT 条件下推到子查询或视图中,从而减少处理的数据量,提高查询性能。
force_batched_key_access:将带索引的链接都转成 batch rpc 的 bka 连接,减小 RPC 的数据量,提升性能。
生效范围
SESSION
是否可修改
是否需要重启