optimizer
动不动就所谓的 sql 语句优化,搞得好像不会点优化没法活似的。 其实吧,可能连优化器的配置都没看过,优化啥啊。
查看 optimizer 配置
mysql> select @@optimizer_switch\G;
*************************** 1. row ***************************
@@optimizer_switch: 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,hash_join=on,subquery_to_derived=off,prefer_ordering_index=on,hypergraph_optimizer=off,derived_condition_pushdown=on
1 row in set (0.00 sec)
优化器配置列表
- 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,hash_join=on,
- subquery_to_derived=off,
- prefer_ordering_index=on,
- hypergraph_optimizer=off,
- derived_condition_pushdown=on