> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ajustes de tabla use_* de MergeTree

> Ajustes de tabla de ClickHouse MergeTree en el grupo generado use_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versión", "Valor predeterminado", "Comentario"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Historial de versiones
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

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.merge\_tree\_settings](/es/reference/system-tables/merge_tree_settings) y se generan automáticamente a partir del código fuente de ClickHouse.

<div id="use_adaptive_write_buffer_for_dynamic_subcolumns">
  ## use\_adaptive\_write\_buffer\_for\_dynamic\_subcolumns
</div>

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

Permite usar búferes de escritura adaptativos al escribir subcolumnas dinámicas para
reducir el uso de memoria

<div id="use_async_block_ids_cache">
  ## use\_async\_block\_ids\_cache
</div>

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

Configuración obsoleta; no tiene ningún efecto.

<div id="use_compact_variant_discriminators_serialization">
  ## use\_compact\_variant\_discriminators\_serialization
</div>

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

Habilita el modo compacto para la serialización binaria de discriminadores en el
tipo de dato Variant.
Este modo permite usar mucha menos memoria para almacenar discriminadores
en las partes cuando hay sobre todo una sola variante o muchos valores NULL.

<div id="use_const_adaptive_granularity">
  ## use\_const\_adaptive\_granularity
</div>

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

La granularidad adaptativa no constante (la predeterminada, cuando `index_granularity_bytes` no es `0`) mantiene los
gránulos con un tamaño constante en bytes, por lo que su número de filas varía: para cada
bloque escrito, el número de filas por gránulo es `index_granularity_bytes` dividido por el
tamaño medio de una fila de ese bloque, con un máximo de `index_granularity`. Como este valor difiere
entre gránulos, el número de filas de cada gránulo de la parte debe mantenerse en
memoria (8 bytes por gránulo), lo que en tablas grandes puede sumar decenas de gigabytes.

Al habilitar la granularidad adaptativa constante (esta configuración), los gránulos mantienen un número constante de filas,
por lo que su tamaño en bytes varía. El número se calcula una sola vez a partir del tamaño medio de una
fila de la parte que se está escribiendo, y la parte almacena ese único valor
en lugar de un valor por gránulo. Como todos los gránulos contienen el mismo número de filas,
no es necesario almacenar un número de filas adicional por gránulo.

La cantidad de memoria que ocupan actualmente estos valores se informa mediante la
métrica `TotalIndexGranularityBytesInMemory` en `system.asynchronous_metrics`,
y por parte en `system.parts.index_granularity_bytes_in_memory`.

La configuración se aplica únicamente a las partes escritas después de modificarla. Use
[ALTER TABLE ... REWRITE PARTS](/es/reference/statements/alter/partition#rewrite-parts)
para aplicarla a las partes existentes. Las partes `Compact` siempre usan granularidad adaptativa.

<div id="use_metadata_cache">
  ## use\_metadata\_cache
</div>

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

Configuración obsoleta; no hace nada.

<div id="use_primary_key_cache">
  ## use\_primary\_key\_cache
</div>

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

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

Usa caché para el índice primario
en lugar de guardar todos los índices en memoria. Puede ser útil para tablas muy grandes
