> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de tabela do MergeTree min_*

> Configurações de tabela do MergeTree no ClickHouse no grupo gerado min_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versão", "Valor padrão", "Comentário"];
  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
  }}>
        Histórico de versões
      </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"
  }}>Padrão</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Pode ser alterado sem reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Essas configurações estão disponíveis em [system.merge\_tree\_settings](/pt-BR/reference/system-tables/merge_tree_settings) e são geradas automaticamente a partir do código-fonte do ClickHouse.

## min\_absolute\_delay\_to\_close

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

Atraso absoluto mínimo para encerrar, parar de atender requisições e não
retornar Ok durante a verificação de status.

## min\_columns\_to\_activate\_adaptive\_write\_buffer

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "500"},{"label": "Nova configuração"}]}]} />

Permite reduzir o uso de memória em tabelas com muitas colunas ao usar buffers de gravação adaptativos.

O valor é comparado ao número de streams que uma parte wide grava, que pode exceder significativamente o número
de colunas: um `Map` com muitos buckets ou um `Array` ou `Tuple` profundamente aninhado grava muitos streams
para uma única coluna, e um buffer de gravação é alocado por stream.

Valores possíveis:

* 0 - desabilitado
* 1 - sempre habilitado

## min\_compress\_block\_size

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

Tamanho mínimo dos blocos de dados não comprimidos necessário para a compressão ao
gravar a próxima mark. Você também pode especificar essa configuração nas configurações globais
(consulte a configuração [min\_compress\_block\_size](/pt-BR/reference/settings/merge-tree-settings/min#min_compress_block_size)
). O valor especificado quando a tabela é criada substitui o valor global
dessa configuração.

## min\_index\_granularity\_bytes

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

Tamanho mínimo permitido dos grânulos de dados, em bytes.

Serve como proteção contra a criação acidental de tabelas com
`index_granularity_bytes` muito baixo.

## min\_marks\_to\_honor\_max\_concurrent\_queries

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

O número mínimo de marcas lidas pela consulta para que a configuração [max\_concurrent\_queries](/pt-BR/reference/settings/merge-tree-settings/max#max_concurrent_queries) seja aplicada.

<Note>
  As consultas ainda serão limitadas por outras configurações de `max_concurrent_queries`.
</Note>

Valores possíveis:

* Inteiro positivo.
* `0` — Desabilitado (o limite de `max_concurrent_queries` não se aplica a nenhuma consulta).

**Exemplo**

```xml theme={null}
<min_marks_to_honor_max_concurrent_queries>10</min_marks_to_honor_max_concurrent_queries>
```

## min\_merge\_bytes\_to\_use\_direct\_io

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

O volume mínimo de dados da operação de mesclagem necessário para usar acesso
de E/S direta ao disco de armazenamento. Ao fazer a mesclagem de partes de dados, o ClickHouse calcula
o volume total de armazenamento de todos os dados que serão mesclados. Se o volume exceder
`min_merge_bytes_to_use_direct_io` bytes, o ClickHouse lê e grava os
dados no disco de armazenamento usando a interface de E/S direta (opção `O_DIRECT`).
Se `min_merge_bytes_to_use_direct_io = 0`, a E/S direta será desabilitada.

## min\_partition\_age\_to\_force\_merge\_seconds

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Nova configuração para forçar o merge de partes em partições que não recebem mais inserts"}]}]} />

Faz o merge das partes de uma partição quando todas elas forem mais antigas
que este valor, ou seja, quando a partição não recebe mais inserts. Diferentemente de
`min_age_to_force_merge_seconds` com `min_age_to_force_merge_on_partition_only`,
a partição não precisa caber em um único merge: cada merge continua respeitando
`max_bytes_to_merge_at_max_space_in_pool`. Funciona com os selectors de mesclagem
Simple e StochasticSimple.

A idade comparada aqui é a da parte mais nova da partição
(`now - modification_time`, minimizada entre suas partes), de modo que a regra só
é armada depois que todas as partes ultrapassam esse valor de idade. Qualquer
parte nova a redefine: um insert, uma mutation e também cada merge que a própria
configuração atribui, já que a parte resultante do merge é nova. Portanto, o
forçamento é desarmado assim que um merge forçado é concluído e só é rearmado
depois que esse valor decorre novamente sem novas partes, de modo que uma partição
que precisa de vários merges é compactada em rodadas sucessivas espaçadas por esse
intervalo, e não em uma única passagem contínua.

O forçamento funciona exatamente como `min_age_to_force_merge_seconds`: ele
dispensa a exigência de proporção de tamanho que normalmente impede a atribuição
de um merge desbalanceado e também dispensa o piso
`min_parts_to_merge_at_once`, de modo que um merge forçado pode abranger menos
partes do que esse piso exige. Nenhuma outra heurística é desativada:
`merge_selector_window_size` continua limitando quais partes são examinadas, e
`merge_selector_enable_heuristic_to_remove_small_parts_at_right` continua
removendo uma parte pequena ao final de um intervalo selecionado de três partes ou
mais. Qualquer uma delas que precise ser desativada para um determinado workload
deve ser desativada explicitamente por meio de sua própria configuração.

Com os selectors de mesclagem Simple e StochasticSimple, esta configuração não pode ser
combinada com `min_age_to_force_merge_seconds` em conjunto com
`min_age_to_force_merge_on_partition_only`. Esse par faz o merge de uma partição
inteira de uma só vez, e somente um merge desse tipo é marcado como final — é
justamente isso que permite a um `ReplacingMergeTree` executar `CLEANUP`; forçar
merges regulares pela idade da partição o impediria. Use o par para partições que
cabem em um único merge e esta configuração para as que não cabem. Os demais
selectors ignoram esta configuração, portanto a combinação é aceita com eles.

Valores possíveis:

* Inteiro positivo.

## min\_parts\_to\_merge\_at\_once

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

Quantidade mínima de partes de dados que o selector de mesclagem pode selecionar para mesclar de uma só vez
(configuração de nível avançado; não altere se você não entende o que ela faz).
0 - desabilitado. Funciona para os selectors de mesclagem Simple e StochasticSimple.

## min\_replicated\_logs\_to\_keep

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

Mantém aproximadamente esse número dos registros mais recentes no log do ZooKeeper, mesmo que estejam
obsoletos. Isso não afeta o funcionamento das tabelas: é usado apenas para diagnosticar o
log do ZooKeeper antes da limpeza.

Valores possíveis:

* Qualquer inteiro positivo.
