tencent cloud

TDSQL Boundless

产品动态
产品简介
产品概述
应用场景
产品架构
实例类型
兼容性说明
使用规范建议
自研内核
内核概述
内核版本更新动态
功能类特性
性能类特性
产品计费
计费概述
购买方式
价格详情
续费说明
欠费说明
退费说明
快速入门
创建实例
连接实例
用户指南
数据迁移
数据同步/订阅
实例管理
参数配置
账号管理
安全组
备份与恢复
数据库审计
标签管理
实践教程
Online DDL 的技术演进与使用实践
锁机制解析与问题排查实践
数据智能调度及相关性能优化实践
TDSQL Boundless 选型指南与实践教程
开发指南
开发指南(MySQL 兼容模式)
开发指南(HBase 兼容模式)
性能调优
性能调优概述
SQL 调优
DDL 调优
性能白皮书
性能概述
TPC-C 测试
Sysbench 测试
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Security Group APIs
Task APIs
Backup APIs
Rollback APIs
Parameter APIs
Database APIs
Data Types
Error Codes
通用参考
系统原理
SQL 参考
数据库参数说明
TPC-H 基准测试数据模型参考
错误码信息
安全与合规
常见问题
服务协议
服务等级协议
服务条款
隐私政策
数据处理和安全协议
联系我们
词汇表

optimizer_switch

PDF
聚焦模式
字号
最后更新时间: 2026-03-27 17:50:58

功能描述

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

属性说明

属性
说明
参数类型
FLAGSET
默认值
index_merge=off,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=off,block_nested_loop=on,batched_key_access=on,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=off,hash_join=on,subquery_to_derived=off,prefer_ordering_index=off,hypergraph_optimizer=off,derived_condition_pushdown=on,favor_range_scan=off,lazy_index_strategy=off,limit_cond_pushdown=on,pk_preload_pushdown=on,force_batched_key_access=on
取值范围
index_merge:设置为 on 或 off,启用或禁用索引合并优化。
index_merge_union:设置为 on 或 off,启用或禁用索引合并中的 UNION 优化。
index_merge_sort_union:设置为 on 或 off,启用或禁用索引合并中的排序 UNION 优化。
index_merge_intersection:设置为 on 或 off,启用或禁用索引合并中的交集优化。
engine_condition_pushdown:设置为 on 或 off,启用或禁用存储引擎条件下推优化。
index_condition_pushdown:设置为 on 或 off,启用或禁用索引条件下推优化。
mrr:设置为 on 或 off,启用或禁用多范围读取优化。
mrr_cost_based:设置为 on 或 off,启用或禁用基于成本的多范围读取优化。
block_nested_loop:设置为 on 或 off,启用或禁用块嵌套循环连接优化。
batched_key_access:设置为 on 或 off,启用或禁用批量键访问优化。
materialization:设置为 on 或 off,启用或禁用物化子查询优化。
semijoin:设置为 on 或 off,启用或禁用半连接优化。
loosescan:设置为 on 或 off,启用或禁用松散扫描优化。
firstmatch:设置为 on 或 off,启用或禁用第一个匹配优化。
duplicateweedout:设置为 on 或 off,启用或禁用重复剔除优化。
subquery_materialization_cost_based:设置为 on 或 off,启用或禁用基于成本的子查询物化优化。
use_index_extensions:设置为 on 或 off,启用或禁用索引扩展优化。
condition_fanout_filter:设置为 on 或 off,启用或禁用条件扇出过滤优化。该优化用于减少在多表连接时的中间结果集大小,从而提高查询性能。
derived_merge:设置为 on 或 off,启用或禁用派生表合并优化。派生表合并优化会将派生表(子查询)合并到外部查询中,从而避免创建临时表。
use_invisible_indexes:设置为 on 或 off,启用或禁用使用不可见索引。不可见索引在查询优化器中被忽略,但仍然存在于表中。禁用该选项可以确保查询优化器不会使用这些索引。
skip_scan:设置为 on 或 off,启用或禁用跳过扫描优化。跳过扫描优化允许在索引扫描时跳过不必要的行,从而提高查询性能。
hash_join:设置为 on 或 off,启用或禁用哈希连接优化。哈希连接适用于等值连接,通过哈希表加速连接操作,通常在大表连接或无索引场景下性能更优。
subquery_to_derived:设置为 on 或 off,启用或禁用子查询转换为派生表优化。该优化将某些子查询转换为派生表,使其能够参与更高效的连接和优化策略。
prefer_ordering_index:设置为 on 或 off,启用或禁用优先使用排序索引优化。当查询包含 ORDER BY 子句时,优化器会优先考虑使用索引来避免排序操作。
hypergraph_optimizer:设置为 on 或 off,启用或禁用超图优化器。超图优化器是 MySQL 8.0.22 引入的实验性优化器,用于处理更复杂的多表连接查询计划。
derived_condition_pushdown:设置为 on 或 off,启用或禁用派生表条件下推优化。该优化将外部查询条件下推到派生表中,提前过滤数据以减少派生表的数据量。
favor_range_scan:设置为 on 或 off,启用或禁用优先范围扫描优化。该优化会倾向于使用范围扫描而非全表扫描,即使范围扫描的成本估算略高,以提升查询稳定性。
lazy_index_strategy:设置为 on 或 off,启用或禁用懒惰索引策略。懒惰索引策略会延迟索引的使用,直到确定索引确实有助于查询性能。
limit_cond_pushdown:设置为 on 或 off,启用或禁用 LIMIT 条件下推优化。该优化会将 LIMIT 条件下推到子查询或视图中,从而减少处理的数据量,提高查询性能。
pk_preload_pushdown:设置为 on 或 off,启用或禁用主键预加载下推优化。该优化将主键预加载操作下推到存储引擎层,减少回表次数,提升主键查询性能。
force_batched_key_access:设置为 on 或 off,将带索引的连接都转成 batch rpc 的 bka 连接,减小 RPC 的数据量,提升性能。
cost_based_hashjoin:设置为 on 或 off,是否将 hashjoin 的代价计算纳入到整体代价模型的计算中。
生效范围
GLOBAL
SESSION
是否重启生效

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈