Skip to main content
Estos SETTINGS están disponibles en system.settings y se generan automáticamente a partir del código fuente.

optimize_trivial_approximate_count_query

Usa un valor aproximado para la optimización de recuento trivial en motores de almacenamiento que admitan este tipo de estimación, por ejemplo, EmbeddedRocksDB. Valores posibles:
  • 0 — Optimización deshabilitada.
    • 1 — Optimización habilitada.

optimize_trivial_count_query

Activa o desactiva la optimización de la consulta trivial SELECT count() FROM table mediante los metadatos de MergeTree. Si necesita usar seguridad a nivel de fila, desactive este SETTING. Valores posibles:
  • 0 — Optimización desactivada.
    • 1 — Optimización activada.
Véase también:

optimize_trivial_count_with_sparsity_filter

Extiende la optimización optimize_trivial_count_query a consultas de la forma SELECT count() FROM t WHERE col <op> const, donde <op> const divide exactamente las filas entre valores predeterminados y no predeterminados de col. El conteo se resuelve entonces a partir de los contadores num_defaults / num_rows por columna que MergeTree ya mantiene en serialization.json, sin escanear datos. Patrones reconocidos:
  • col = default(col) / col != default(col) para Int* / UInt*, String / FixedString, Date / DateTime / DateTime64, Decimal*, UUID, IPv4 / IPv6.
  • IS NULL / IS NOT NULL en columnas Nullable.
  • empty(col) / notEmpty(col) en columnas String.
  • col = true / col != true en columnas Bool.
  • col > 0, col >= 1, col < 1, col <= 0 en columnas enteras sin signo.
  • col / NOT col directos en columnas Int*, UInt*, Bool (prueba de veracidad).
Los patrones de igualdad no se aplican a Float*, Enum*, Nullable, LowCardinality ni a tipos compuestos (Tuple, Array, Map, …) — para estos, el conteo se resuelve mediante la ruta de escaneo normal. Para que surta efecto, el contador num_defaults por parte debe ser exacto. Habilite la SETTING de tabla de MergeTree compute_exact_num_defaults_for_sparse_columns en la tabla de destino antes de las inserciones y fusiones. Las partes escritas sin ella quedan excluidas silenciosamente de la reescritura, por lo que habilitar solo optimize_trivial_count_with_sparsity_filter no es suficiente. Para los patrones IS NULL / IS NOT NULL en columnas Nullable, la columna también debe tener una entrada num_defaults en serialization.json, lo que solo ocurre cuando la SETTING de tabla de MergeTree nullable_serialization_version está establecida en allow_sparse en el momento de la inserción / fusión. Con el valor predeterminado basic, las columnas Nullable no obtienen ninguna entrada por columna, por lo que la optimización simplemente no se aplica. Posibles valores:
  • 0 — Optimización deshabilitada.
    • 1 — Optimización habilitada.
Véase también:

optimize_trivial_group_by_limit_query

Activa o desactiva la optimización de una consulta trivial SELECT key_expr FROM table GROUP BY key_expr LIMIT n (sin funciones de agregación en la proyección, sin cláusulas HAVING/ORDER BY/LIMIT BY/window y sin modificadores GROUP BY) estableciendo max_rows_to_group_by = n + offset con group_by_overflow_mode = 'any'. La agregación se detiene en cuanto se obtienen n + offset claves distintas. La optimización se suprime cuando el usuario ha establecido explícitamente group_by_overflow_mode en un valor distinto de any (para preservar el comportamiento explícito de throw/break), y cuando el usuario ya ha establecido un max_rows_to_group_by más restrictivo (la optimización no tendría efecto). Valores posibles:
  • 0 — Optimización desactivada.
  • 1 — Optimización activada.

optimize_trivial_insert_select

Optimiza la consulta trivial ‘INSERT INTO table SELECT … FROM TABLES’
Última modificación el 24 de julio de 2026