> ## 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 optimize_limit_*

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

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>;
};

Estas configuraciones 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="optimize_limit_by_function_keys">
  ## optimize\_limit\_by\_function\_keys
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1"},{"label": "Nueva configuración que elimina las claves de LIMIT BY que son funciones de otras claves de LIMIT BY."}]}]} />

Elimina las funciones de otras claves en la sección LIMIT BY.

Ejemplo: `LIMIT 5 BY x, f(x)` se convierte en `LIMIT 5 BY x`.

<div id="optimize_limit_by_in_order">
  ## optimize\_limit\_by\_in\_order
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "1"},{"label": "Nueva configuración para optimizar las consultas `LIMIT BY` cuando las columnas `BY` son un prefijo de la clave de ordenación de la tabla."}]}]} />

Optimiza las consultas `SELECT ... LIMIT N BY <cols>` cuando `<cols>` (en cualquier orden) forman un prefijo de la clave de ordenación de la tabla, o pasan a formarlo después de que `WHERE col = const` fija las columnas iniciales. Cuando esta opción está habilitada, la lectura de origen lee los datos en el orden de la clave primaria, de modo que las filas con valores iguales en las columnas `BY` llegan contiguas entre sí dentro de cada flujo. Cuando los datos llegan en un único flujo ordenado, `LIMIT BY` los filtra en modo streaming con memoria O(1), en lugar de construir una tabla hash con cada combinación distinta de columnas `BY` encontrada. Cuando los datos ordenados llegan en varios flujos y los mismos valores de `BY` pueden aparecer en más de uno de ellos, primero cada flujo se prefiltra en modo streaming hasta un máximo de `LIMIT + OFFSET` filas por grupo; después, los flujos se combinan y un `LIMIT BY` final basado en hash elimina los duplicados de los grupos que abarcan varios flujos. Ese paso final sigue manteniendo una entrada por cada combinación distinta de columnas `BY`, pero solo procesa las filas prefiltradas.
