> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ajustes de sesión min_*

> Ajustes de sesión de ClickHouse en el grupo generado min_*.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Predeterminado</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modificable sin reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Estos ajustes están disponibles en [system.settings](/docs/es/reference/system-tables/settings) y se generan automáticamente a partir del [código fuente](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="min_chunk_bytes_for_parallel_parsing">
  ## min\_chunk\_bytes\_for\_parallel\_parsing
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="10485760" />

* Tipo: entero sin signo
* Valor predeterminado: 1 MiB

El tamaño mínimo del fragmento, en bytes, que cada hilo analizará en paralelo.

<div id="min_compress_block_size">
  ## min\_compress\_block\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="65536" />

Para las tablas [MergeTree](/docs/es/reference/engines/table-engines/mergetree-family/mergetree). Para reducir la latencia al procesar consultas, un bloque se comprime al escribir la siguiente marca si su tamaño es, como mínimo, `min_compress_block_size`. El valor predeterminado es 65.536.

El tamaño real del bloque, si los datos sin comprimir son menores que `max_compress_block_size`, no será inferior a este valor ni al volumen de datos de una marca.

Veamos un ejemplo. Supongamos que `index_granularity` se estableció en 8192 durante la creación de la tabla.

Estamos escribiendo una columna de tipo UInt32 (4 bytes por valor). Al escribir 8192 filas, el total será de 32 KB de datos. Como min\_compress\_block\_size = 65.536, se formará un bloque comprimido por cada dos marcas.

Estamos escribiendo una columna URL de tipo String (con un tamaño medio de 60 bytes por valor). Al escribir 8192 filas, la media será de algo menos de 500 KB de datos. Como esto supera 65.536, se formará un bloque comprimido para cada marca. En este caso, al leer datos del disco en el rango de una sola marca, no se descomprimirán datos adicionales.

<Note>
  Esta es una configuración de nivel experto, y no deberías cambiarla si estás empezando con ClickHouse.
</Note>

<div id="min_filtered_ratio_for_lazy_final">
  ## min\_filtered\_ratio\_for\_lazy\_final
</div>

<SettingsInfoBlock type="Float" default_value="0.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0.5"},{"label": "Nueva configuración para la proporción mínima de marcas filtradas necesaria para aplicar la optimización FINAL diferida"}]}]} />

Proporción mínima de marcas filtradas mediante el análisis de índices para la optimización FINAL diferida. Si se filtra menos de esta fracción de marcas, se recurre al FINAL normal. El valor `0` desactiva esta comprobación.

<div id="min_hit_rate_to_use_consecutive_keys_optimization">
  ## min\_hit\_rate\_to\_use\_consecutive\_keys\_optimization
</div>

<SettingsInfoBlock type="Float" default_value="0.5" />

Tasa mínima de aciertos de la caché usada en la optimización de claves consecutivas en la agregación para que siga habilitada

<div id="min_os_cpu_wait_time_ratio_to_throw">
  ## min\_os\_cpu\_wait\_time\_ratio\_to\_throw
</div>

<SettingsInfoBlock type="Float" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Se cambiaron los valores de la configuración y se aplicaron mediante backport a 25.4"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Proporción mínima entre los tiempos de espera de CPU del SO (métrica OSCPUWaitMicroseconds) y de actividad (métrica OSCPUVirtualTimeMicroseconds) a partir de la cual se considera rechazar consultas. Se usa interpolación lineal entre la proporción mínima y la máxima para calcular la probabilidad; en este punto, la probabilidad es 0.

<div id="min_outstreams_per_resize_after_split">
  ## min\_outstreams\_per\_resize\_after\_split
</div>

<SettingsInfoBlock type="UInt64" default_value="24" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "24"},{"label": "Nueva configuración."}]}]} />

Especifica el número mínimo de flujos de salida de un procesador `Resize` o `StrictResize` tras realizar la división durante la generación del pipeline. Si el número de flujos resultante es inferior a este valor, la operación de división no se llevará a cabo.

<div id="what-is-a-resize-node">
  ### Qué es un nodo Resize
</div>

Un nodo `Resize` es un procesador del pipeline de consulta que ajusta la cantidad de flujos de datos que pasan por el pipeline. Puede aumentar o reducir el número de flujos para equilibrar la carga de trabajo entre varios hilos o procesadores. Por ejemplo, si una consulta requiere más paralelismo, el nodo `Resize` puede dividir un único flujo en varios flujos. A la inversa, puede combinar varios flujos en menos flujos para consolidar el procesamiento de datos.

El nodo `Resize` garantiza que los datos se distribuyan de forma uniforme entre los flujos, manteniendo la estructura de los bloques de datos. Esto ayuda a optimizar la utilización de recursos y a mejorar el rendimiento de las consultas.

<div id="why-the-resize-node-needs-to-be-split">
  ### Por qué es necesario dividir el nodo Resize
</div>

Durante la ejecución del pipeline, `ExecutingGraph::Node::status_mutex` del nodo `Resize`, que actúa como concentrador central, presenta una contención elevada, especialmente en entornos con un gran número de núcleos, y esta contención provoca:

1. Un aumento de la latencia de `ExecutingGraph::updateNode`, lo que afecta directamente al rendimiento de las consultas.
2. Se desperdician demasiados ciclos de CPU en la contención del spin-lock (`native_queued_spin_lock_slowpath`), lo que reduce la eficiencia.
3. Una menor utilización de la CPU, lo que limita el paralelismo y el rendimiento.

<div id="how-the-resize-node-gets-split">
  ### Cómo se divide el nodo Resize
</div>

1. Se comprueba el número de flujos de salida para garantizar que la división pueda realizarse: los flujos de salida de cada procesador dividido cumplen o superan el umbral `min_outstreams_per_resize_after_split`.
2. El nodo `Resize` se divide en nodos `Resize` más pequeños con el mismo número de puertos, y cada uno maneja un subconjunto de flujos de entrada y de salida.
3. Cada grupo se procesa de forma independiente, lo que reduce la contención por bloqueos.

<div id="splitting-resize-node-with-arbitrary-inputsoutputs">
  ### División de un nodo Resize con entradas/salidas arbitrarias
</div>

En algunos casos, cuando el número de entradas/salidas no es divisible entre el número de nodos `Resize` divididos, algunas entradas se conectan a `NullSource`s y algunas salidas se conectan a `NullSink`s. Esto permite realizar la división sin afectar al flujo general de datos.

<div id="purpose-of-the-setting">
  ### Propósito de la configuración
</div>

La configuración `min_outstreams_per_resize_after_split` garantiza que la división de los nodos `Resize` sea útil y evita crear muy pocos flujos, lo que podría dar lugar a un procesamiento en paralelo ineficiente. Al imponer un número mínimo de flujos de salida, esta configuración ayuda a mantener un equilibrio entre el paralelismo y la sobrecarga, optimizando la ejecución de consultas en escenarios que implican la división y fusión de flujos.

<div id="disabling-the-setting">
  ### Desactivar esta configuración
</div>

Para desactivar la división de los nodos `Resize`, establezca esta configuración en 0. Esto evita que los nodos `Resize` se dividan durante la generación del pipeline, lo que les permite conservar su estructura original sin subdividirse en nodos más pequeños.

<div id="min_table_rows_to_use_projection_index">
  ## min\_table\_rows\_to\_use\_projection\_index
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1000000"},{"label": "Nueva configuración"}]}]} />

Si el número estimado de filas que se leerán de la tabla es mayor o igual que este umbral, ClickHouse intentará usar el índice de proyección durante la ejecución de consultas.
