optimize_aggregators_of_group_by_keys
optimize_append_index
false です。
設定可能な値:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- 正の整数 - 名前の最大長
- 0 — 常に置き換える
- 負の整数 - 置き換えない
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage に適用されます。
設定可能な値:
- 0 — 最適化は無効です。
- 1 — 最適化は有効です。
optimize_dictget_tuple_element
tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) は dictGet('dict', 'b', key) に書き換えられます。位置指定アクセス (.1、.2、…) と名前付きアクセス (.b) に対応しており、デフォルト引数が定数 Tuple または定数のみからなる tuple(...) の場合は dictGetOrDefault にも適用されます。
optimize_distinct_in_order
optimize_distributed_group_by_sharding_key
GROUP BY sharding_key クエリを最適化します (これにより、イニシエーターサーバー上でそのクエリが使用するメモリ量も削減されます) 。
次の種類のクエリがサポートされています (およびそれらのすべての組み合わせ) :
SELECT DISTINCT [..., ]sharding_key[, ...] FROM distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — 無効。
- 1 — 有効。
現時点では
optimize_skip_unused_shards が必要です。これは、将来的にこの設定がデフォルトで有効になる可能性がある一方で、データが Distributed テーブル経由で挿入され、すなわち sharding_key に従って分散されている場合にのみ正しく動作するためです。optimize_dry_run_check_part
OPTIMIZE ... DRY RUN は checkDataPart を使って、マージ後の結果パートを検証します。チェックに失敗すると、例外がスローされます。
optimize_empty_string_comparisons
optimize_extract_common_expressions
(A AND B) OR (A AND C) のような論理式は A AND (B OR C) に書き換えられ、これにより次の最適化を活用しやすくなる場合があります。
- 単純なフィルタ式でのインデックス利用
- CROSS JOIN から INNER JOIN への最適化
optimize_functions_to_subcolumns
- length を size0 サブカラムの読み取りに変換します。
- empty を size0 サブカラムの読み取りに変換します。
- notEmpty を size0 サブカラムの読み取りに変換します。
- isNull を null サブカラムの読み取りに変換します。
- isNotNull を null サブカラムの読み取りに変換します。
- count を null サブカラムの読み取りに変換します。
- mapKeys を keys サブカラムの読み取りに変換します。
- mapValues を values サブカラムの読み取りに変換します。
- 0 — 最適化は無効です。
- 1 — 最適化は有効です。
optimize_inverse_dictionary_lookup
optimize_multiif_to_if
optimize_normalize_count_variants
optimize_on_insert
- 0 — 無効。
- 1 — 有効。
optimize_prewhere_after_pushdown
MergeTree の読み取りステップの上に追加のフィルター
(たとえば JOIN を介した述語プッシュダウンやプロジェクションの書き換え) が
追加されることがあります。この設定を有効にすると、その後に 2 回目の PREWHERE 昇格パスを実行します。既存の
PREWHERE がすでにある場合、新しいフィルターは個別のフィルターステップとして残されず、
AND でそこにマージされます。
optimize_qbit_distance_function_reads
QBit データ型に対する距離関数を、ストレージから計算に必要なカラムだけを読み込む等価な関数に置き換えます。
optimize_read_in_order
- 0 —
ORDER BY最適化は無効です。 - 1 —
ORDER BY最適化は有効です。
optimize_respect_aliases
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
falseです。
設定可能な値:
- true, false
optimize_syntax_fuse_functions
- 0 — 同一の引数を持つ関数は統合されません。
- 1 — 同一の引数を持つ関数は統合されます。
optimize_throw_if_noop
OPTIMIZE は何も実行しなかった場合でも成功として扱われます。この設定を使うと、こうした状況を区別し、その理由を例外メッセージで確認できます。
設定可能な値:
- 1 — 例外のスローが有効です。
- 0 — 例外のスローが無効です。
optimize_time_filter_with_preimage
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
optimize_using_constraints
falseです。
設定可能な値:
- true, false