Re: semijoin_with_cache , outer_join_with_cache missing from optimizer_switch
Those are the two lists from mysqld --verbose --help:
index_merge=xx,index_merge_union=xx,index_merge_sort_union=xx,index_merge_intersection=xx,index_merge_sort_intersection=xxx,index_condition_pushdown=xxx,derived_merge=xxx,derived_with_keys=xxx,firstmatch=xx,loosescan=xx,materialization=xxx,in_to_exists=xx,semijoin=xx,partial_match_rowid_merge=xx,partial_match_table_scan=xx,subquery_cache=xx, outer_join_with_cache=xxx,semijoin_with_cache=xxx,join_cache_incremental=xx,join_cache_hashed=xx,join_cache_bka=xx,optimize_join_buffer_size=xxx,table_elimination=xx
optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=on,loosescan=on,materialization=off,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on
and this is from SHOW VARIABLES on a running server:
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=on,loosescan=on,materialization=off,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on
Those three lists are different. The first list from mysqld --verbose --help is missing mrr,mrr_cost_based,mrr_sort keys. The second list is missing outer_join_with_cache, semijoin_with_cache.
Re: semijoin_with_cache , outer_join_with_cache missing from optimizer_switch
grepping for optimizer_switch and join_with_cache on the same line produces nothing, because the help text looks like this:
--optimizer_switch=name
{index_merge, index_merge_union, index_merge_sort_union, index_merge_intersection, index_merge_sort_intersection, index_condition_pushdown, derived_merge, derived_with_keys, firstmatch, loosescan, materialization, in_to_exists, semijoin, partial_match_rowid_merge, partial_match_table_scan, subquery_cache, outer_join_with_cache, semijoin_with_cache, join_cache_incremental, join_cache_hashed, join_cache_bka, optimize_join_buffer_size, table_elimination}optimizer_switch=option=val[,option=val...], where
option=
and
{on, off, default}val=
.
one can see that semijoin_with_cache and outerjoin_with_cache are present there.
Everything seems to work as it should.