Spec-Zone.ru › MariaDB

optimizer_switch

optimizer_switch — это переменная сервера, которую можно использовать для включения/выключения определённых оптимизаций.

Синтаксис

Для установки или отключения различных оптимизаций используйте следующий синтаксис:

SET [GLOBAL|SESSION] optimizer_switch='cmd[,cmd]...';

cmd имеет следующий формат:

Синтаксис Описание
default Сбросить все оптимизации до их значений по умолчанию.
optimization_name=default Установить указанную оптимизацию в её значение по умолчанию.
optimization_name=on Включить указанную оптимизацию.
optimization_name=off Отключить указанную оптимизацию.

Нет необходимости перечислять все флаги — будут затронуты только те, которые указаны в команде.

Доступные флаги

Ниже приведен список всех флагов optimizer_switch, доступных в MariaDB:

Флаг и значение по умолчанию в MariaDB Поддерживается с MariaDB Поддерживается с MySQL
condition_pushdown_for_derived=on MariaDB 10.2.2 -
condition_pushdown_for_subquery=on MariaDB 10.4.0 -
condition_pushdown_from_having=on MariaDB 10.4.3 -
derived_merge=on MariaDB 5.3 MySQL 5.7
derived_with_keys=on MariaDB 5.3 -
default MariaDB 5.1 MySQL 5.1
engine_condition_pushdown=off MariaDB 5.5 (устарело в 10.1) MySQL 5.5
exists_to_in=on MariaDB 10.0 -
extended_keys=on MariaDB 5.5.21 -
firstmatch=on MariaDB 5.3 MySQL 5.6
index_condition_pushdown=on MariaDB 5.3 MySQL 5.6
hash_join_cardinality=off MariaDB 10.6.13 (MDEV-30812) -
index_merge=on MariaDB 5.1 MySQL 5.1
index_merge_intersection=on MariaDB 5.1 MySQL 5.1
index_merge_sort_intersection=off MariaDB 5.3 -
index_merge_sort_union=on MariaDB 5.1 MySQL 5.1
index_merge_union=on# MariaDB 5.1 MySQL 5.1
in_to_exists=on MariaDB 5.3 -
join_cache_bka=on MariaDB 5.3 -
join_cache_hashed=on MariaDB 5.3 -
join_cache_incremental=on MariaDB 5.3 -
loosescan=on MariaDB 5.3 MySQL 5.6
materialization=on (semi-join, non-semi-join) MariaDB 5.3 MySQL 5.6
mrr=off MariaDB 5.3 MySQL 5.6
mrr_cost_based=off MariaDB 5.3 MySQL 5.6
mrr_sort_keys=off MariaDB 5.3 -
not_null_range_scan=off MariaDB 10.5 -
optimize_join_buffer_size=on MariaDB 5.3, Значение по умолчанию ON с MariaDB 10.4.3 -
orderby_uses_equalities=on MariaDB 10.1.15 -
outer_join_with_cache=on MariaDB 5.3 -
partial_match_rowid_merge=on MariaDB 5.3 -
partial_match_table_scan=on MariaDB 5.3 -
reorder MariaDB 10.7 -
rowid_filter=on MariaDB 10.4.3 -
semijoin=on MariaDB 5.3 MySQL 5.6
semijoin_with_cache=on MariaDB 5.3 -
split_materialized=on[1] MariaDB 10.3.4 -
subquery_cache=on MariaDB 5.3 -
table_elimination=on MariaDB 5.1 -
  1. ↑ заменено на split_grouping_derived, введено в MariaDB 10.3.1

Значения по умолчанию

С версии Настройка optimizer_switch по умолчанию
MariaDB 11.0.2 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=on, table_elimination=on, extended_keys=on, exists_to_in=on, orderby_uses_equalities=on, condition_pushdown_for_derived=on, split_materialized=on, condition_pushdown_for_subquery=on, rowid_filter=on,condition_pushdown_from_having=on, not_null_range_scan=off, hash_join_cardinality=on
MariaDB 10.6.13, MariaDB 10.11.3 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=on, table_elimination=on, extended_keys=on, exists_to_in=on, orderby_uses_equalities=on, condition_pushdown_for_derived=on, split_materialized=on, condition_pushdown_for_subquery=on, rowid_filter=on,condition_pushdown_from_having=on, not_null_range_scan=off, hash_join_cardinality=off
MariaDB 10.5.0 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=on, table_elimination=on, extended_keys=on, exists_to_in=on, orderby_uses_equalities=on, condition_pushdown_for_derived=on, split_materialized=on, condition_pushdown_for_subquery=on, rowid_filter=on,condition_pushdown_from_having=on, not_null_range_scan=off
MariaDB 10.4.3 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=on, table_elimination=on, extended_keys=on, exists_to_in=on, orderby_uses_equalities=on, condition_pushdown_for_derived=on, split_materialized=on, condition_pushdown_for_subquery=on, rowid_filter=on,condition_pushdown_from_having=on
MariaDB 10.4.0 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on, extended_keys=on, exists_to_in=on, orderby_uses_equalities=on, condition_pushdown_for_derived=on, split_materialized=on, condition_pushdown_for_subquery=on
MariaDB 10.3.4 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on, extended_keys=on, exists_to_in=on, orderby_uses_equalities=on, condition_pushdown_for_derived=on, split_materialized=on
MariaDB 10.2.2 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on, extended_keys=on, exists_to_in=on, orderby_uses_equalities=on, condition_pushdown_for_derived=on
MariaDB 10.1.15 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on, extended_keys=on, exists_to_in=on, orderby_uses_equalities=off
MariaDB 10.0.12 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on, extended_keys=on, exists_to_in=on
MariaDB 10.0.9 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on, extended_keys=on, exists_to_in=off
MariaDB 10.0.2 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on, extended_keys=off, exists_to_in=off
MariaDB 5.5.21 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on, extended_keys=off
MariaDB 5.5.20 index_merge=on, index_merge_union=on, index_merge_sort_union=on, index_merge_intersection=on, index_merge_sort_intersection=off, engine_condition_pushdown=off, index_condition_pushdown=on, derived_merge=on, derived_with_keys=on, firstmatch=on, loosescan=on, materialization=on, 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=on, semijoin_with_cache=on, join_cache_incremental=on, join_cache_hashed=on, join_cache_bka=on, optimize_join_buffer_size=off, table_elimination=on
MariaDB 5.3.3 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=вкл., mrr=выкл., mrr_cost_based=выкл., mrr_sort_keys=выкл., outer_join_with_cache=вкл., semijoin_with_cache=вкл., join_cache_incremental=вкл., join_cache_hashed=вкл., join_cache_bka=вкл., optimize_join_buffer_size=выкл., table_elimination=вкл.
MariaDB 5.3.0 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=выкл., mrr=выкл., mrr_cost_based=выкл., mrr_sort_keys=выкл., outer_join_with_cache=выкл., semijoin_with_cache=выкл., join_cache_incremental=вкл., join_cache_hashed=вкл., join_cache_bka=вкл., optimize_join_buffer_size=выкл., table_elimination=вкл.
< MariaDB 5.3.0 index_merge=вкл., index_merge_union=вкл., index_merge_sort_union=вкл., index_merge_intersection=вкл.

См. также

  • Быстрое нахождение значений optimizer_switch, установленных или отключенных
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не предварительно проверяется MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/optimizer-switch/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API