> ## 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.

# paramètres de table use_* de MergeTree

> Paramètres de table MergeTree de ClickHouse dans le groupe généré use_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Version", "Valeur par défaut", "Commentaire"];
  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
  }}>
        Historique des versions
      </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
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Par défaut</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modifiable sans redémarrage
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Ces paramètres sont disponibles dans [system.merge\_tree\_settings](/fr/reference/system-tables/merge_tree_settings) et sont générés automatiquement à partir des sources 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" />

Permet d’utiliser des tampons d’écriture adaptatifs lors de l’écriture de sous-colonnes dynamiques afin de
réduire l’utilisation de la mémoire

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

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

Paramètre obsolète, sans effet

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

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

Active le mode compact pour la sérialisation binaire des discriminateurs du
type de données Variant.
Ce mode permet d'utiliser nettement moins de mémoire pour stocker les discriminateurs
dans les parts lorsqu'il n'y a majoritairement qu'une seule variante ou beaucoup de valeurs NULL.

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

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

La granularité adaptative non constante (par défaut, lorsque `index_granularity_bytes` n'est pas égal à `0`) conserve les
granules à une taille constante en octets, de sorte que leur nombre de lignes varie : pour chaque
bloc écrit, le nombre de lignes par granule correspond à `index_granularity_bytes` divisé par la
taille moyenne d'une ligne dans ce bloc, avec un maximum de `index_granularity`. Comme ce nombre diffère
d'un granule à l'autre, le nombre de lignes de chaque granule de la part doit être conservé en
mémoire, à raison de 8 octets par granule, ce qui peut représenter des dizaines de gigaoctets pour les grandes tables.

L'activation de la granularité adaptative constante (ce paramètre) conserve au contraire un nombre constant de lignes par granule,
de sorte que leur taille en octets varie. Ce nombre est calculé une seule fois à partir de la taille moyenne d'une
ligne dans la part en cours d'écriture, et une part stocke cette valeur unique
au lieu d'une valeur par granule. Comme tous les granules contiennent le même nombre de lignes,
il n'est pas nécessaire de stocker un nombre de lignes supplémentaire pour chaque granule.

La quantité de mémoire actuellement consacrée à ces valeurs est indiquée par la
métrique `TotalIndexGranularityBytesInMemory` dans `system.asynchronous_metrics`,
et, pour chaque part, dans `system.parts.index_granularity_bytes_in_memory`.

Le paramètre s'applique uniquement aux parts écrites après sa modification. Utilisez
[ALTER TABLE ... REWRITE PARTS](/fr/reference/statements/alter/partition#rewrite-parts)
pour l'appliquer aux parts existantes. Les parts `Compact` utilisent toujours une granularité adaptative.

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

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

Paramètre obsolète, sans effet

<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": "Nouveau paramètre"}]}]} />

Utiliser le cache pour l’index primaire
au lieu de conserver tous les index en mémoire. Peut être utile pour de très grandes tables
