@@optimizer_switch is a server variable that one can use to enable/disable specific optimizations. For generic syntax, see Switchable Optimizations in MySQL Manual.

Below is a list of all @@optimizer_switch flags available in MariaDB 5.3:

Flag and default settingSupported in MariaDB sinceSupported in MySQL since
derived_merge=onMariaDB 5.3-
derived_with_keys=onMariaDB 5.3-
index_condition_pushdown=onMariaDB 5.3MySQL 5.6
index_merge=onMariaDB 5.1MySQL 5.1.x
index_merge_union=onMariaDB 5.1MySQL 5.1.x
index_merge_sort_union=onMariaDB 5.1MySQL 5.1.x
index_merge_intersection=onMariaDB 5.1MySQL 5.1.x
index_merge_sort_intersection=offMariaDB 5.3-
mrr=offMariaDB 5.3MySQL 5.6
mrr_cost_based=offMariaDB 5.3MySQL 5.6
mrr_sort_keys=offMariaDB 5.3-
materialization=onMariaDB 5.3-
subquery_cache=onMariaDB 5.3-
semijoin=onMariaDB 5.3-
firstmatch=onMariaDB 5.3-
loosescan=onMariaDB 5.3-
in_to_exists=onMariaDB 5.3-
partial_match_rowid_merge=onMariaDB 5.3-
partial_match_table_scan=onMariaDB 5.3-
join_cache_bka=onMariaDB 5.3-
join_cache_hashed=onMariaDB 5.3-
join_cache_incremental=onMariaDB 5.3-
outer_join_with_cache=onMariaDB 5.3-
semijoin_with_cache=onMariaDB 5.3-
optimize_join_buffer_size=offMariaDB 5.3-
table_elimination=onMariaDB 5.1-

The following optimizer_switch flags are present in MySQL but not in MariaDB:

Flag and default settingSupported in MariaDB sinceSupported in MySQL since
engine_condition_pushdown=on-MySQL 5.1

Note that the feature behind this flag, Table Condition Pushdown, is only used by NDB Cluster.

See Also:

Comments

Comments loading...