Estas configurações estão disponíveis em system.settings e são geradas automaticamente a partir do código-fonte.
merge_tree_coarse_index_granularity
Ao procurar dados, o ClickHouse verifica as marcas dos dados no arquivo de índice. Se o ClickHouse identificar que as chaves necessárias estão em determinado intervalo, ele divide esse intervalo em merge_tree_coarse_index_granularity subintervalos e busca essas chaves neles, recursivamente.
Valores possíveis:
- Qualquer número inteiro par positivo.
merge_tree_compact_parts_min_granules_to_multibuffer_read
Só tem efeito no ClickHouse Cloud. Número de grânulos em uma stripe de uma parte compacta de tabelas MergeTree para usar o leitor multibuffer, que oferece suporte a leitura paralela e prefetch. No caso de leitura a partir de um sistema de arquivos remoto, o uso do leitor multibuffer aumenta o número de requisições de leitura. Uma parte é lida com um único buffer quando contém menos grânulos do que esse limite e também menos grânulos do que o número de colunas que estão sendo lidas, porque, nesse caso, o leitor de buffer único emite menos requisições de leitura do que o leitor multibuffer.
merge_tree_determine_task_size_by_prewhere_columns
Define se deve usar apenas o tamanho das colunas de prewhere para determinar o tamanho da tarefa de leitura.
merge_tree_generic_exclusion_search_max_steps
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.7 | 0 | Nova configuração para limitar o número de passos da busca genérica por exclusão no índice da chave primária. |
Quando um filter não pode ser avaliado como um único intervalo contínuo da chave primária, por exemplo, quando usa colunas-chave diferentes da primeira, o ClickHouse executa um algoritmo iterativo de busca genérica por exclusão sobre as marcas do índice. O mesmo algoritmo é usado na análise do índice de texto. Esta configuração limita o número de passos (verificações do índice) que o algoritmo realiza em cada parte de dados.
O orçamento é consumido primeiro nos maiores intervalos de marcas restantes. Quando ele se esgota, os intervalos que não foram totalmente analisados são aceitos como um todo, de modo que a consulta continua correta, mas pode ler mais grânulos do que uma busca sem limite selecionaria. Um orçamento menor acelera a análise do índice, ao custo de ler mais dados. O limite é aproximado, e não um teto estrito para o custo da análise: a busca pode ultrapassá-lo em aproximadamente uma rodada de divisão e, quando a parte já está dividida em muitos intervalos (por exemplo, pelo cache de condições da consulta), cada um deles é verificado pelo menos uma vez, independentemente do limite.
O número de passos executados pela busca em cada parte de dados é informado nas mensagens de log da consulta no nível trace, e os profile events IndexGenericExclusionSearchStepLimitReached e TextIndexGenericExclusionSearchStepLimitReached contam quantas vezes o orçamento foi esgotado.
O valor padrão 0 significa passos ilimitados.
Possible values:
- 0 para passos ilimitados ou qualquer número inteiro positivo.
merge_tree_max_bytes_to_use_cache
Se o ClickHouse precisar ler mais de merge_tree_max_bytes_to_use_cache bytes em uma consulta, ele não usará o cache de blocos não comprimidos.
O cache de blocos não comprimidos armazena dados extraídos para consultas. O ClickHouse usa esse cache para acelerar as respostas a consultas pequenas repetidas. Essa configuração evita que o cache seja prejudicado por consultas que leem uma grande quantidade de dados. A configuração do servidor uncompressed_cache_size define o tamanho do cache de blocos não comprimidos.
Valores possíveis:
- Qualquer inteiro positivo.
merge_tree_max_rows_to_use_cache
Se o ClickHouse precisar ler mais de merge_tree_max_rows_to_use_cache linhas em uma consulta, ele não usará o cache de blocos não comprimidos.
O cache de blocos não comprimidos armazena dados extraídos durante a execução de consultas. O ClickHouse usa esse cache para acelerar a resposta a consultas pequenas executadas repetidamente. Essa configuração protege o cache contra a degradação causada por consultas que leem uma grande quantidade de dados. A configuração de servidor uncompressed_cache_size define o tamanho do cache de blocos não comprimidos.
Valores possíveis:
- Qualquer número inteiro positivo.
merge_tree_min_bytes_for_concurrent_read
Se o número de bytes a serem lidos de um arquivo de uma tabela do motor MergeTree exceder merge_tree_min_bytes_for_concurrent_read, o ClickHouse tentará ler esse arquivo de forma concorrente usando várias threads.
Valor possível:
- Inteiro positivo.
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.10 | 0 | A configuração está obsoleta |
O número mínimo de bytes que devem ser lidos de um arquivo para que o motor MergeTree possa paralelizar a leitura ao fazer leitura a partir do sistema de arquivos remoto. Não recomendamos o uso desta configuração.
Valores possíveis:
- Inteiro positivo.
merge_tree_min_bytes_for_seek
Se a distância entre dois blocos de dados a serem lidos em um arquivo for menor que merge_tree_min_bytes_for_seek bytes, o ClickHouse lerá sequencialmente um intervalo do arquivo que contenha ambos os blocos, evitando assim uma operação adicional de seek.
Valores possíveis:
- Qualquer inteiro positivo.
merge_tree_min_bytes_per_read_stream
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.8 | 65536 | Nova configuração para limitar o número de streams em varreduras não ordenadas de colunas estreitas do `MergeTree` local comum, usando um modelo de custo de raiz quadrada e reduzindo a sobrecarga por stream em máquinas com muitos núcleos. previous_value=0 (desabilitado), portanto, a `compatibility` com versões anteriores à 26.8 restaura a contagem de streams anterior. |
Custo de sobrecarga por stream expresso em equivalente de bytes. Controla o número máximo de streams de leitura criados para varreduras não ordenadas do MergeTree local comum. Leituras ordenadas, FINAL, em camadas e de réplicas paralelas não são alteradas. O limite baseado no volume é ceil(sqrt(estimated_read_bytes / this_setting)). O ClickHouse também mantém pelo menos 16 streams e pelo menos um quarto dos streams solicitados antes da aplicação desse limite. Portanto, a contagem efetiva de streams é min(requested_streams, max(volume_based_cap, 16, floor(requested_streams / 4))). Esses limites mínimos preservam o paralelismo nas etapas subsequentes para expressões e agregações que exigem muito da CPU, cujo custo não é representado por estimated_read_bytes.
estimated_read_bytes é o tamanho não comprimido das colunas lidas nos intervalos de marcas restantes após a eliminação por índice e partição. O tamanho não comprimido é usado porque a sobrecarga por stream é ponderada em relação ao trabalho realizado por stream, que aumenta conforme o número de valores processados, e não conforme o grau de compressão.
O limite não é aplicado quando o volume de leitura não pode ser estimado de forma conservadora, por exemplo, quando uma parte antiga requer outras colunas físicas para avaliar uma coluna DEFAULT recém-adicionada ou quando um intervalo selecionado lê apenas parte de uma coluna de largura variável.
O valor padrão de 64 KB é derivado do modelo de custo T(N) = W/N + F + V·N, em que W é o trabalho útil, F é a sobrecarga fixa do pipeline e V é o custo variável por stream. A contagem ideal de streams é sqrt(W/V). Ao expressar W em bytes por meio da vazão, obtém-se C = throughput · V ≈ 400 MB/s · 0.17 ms ≈ 64 KB. Aumentar esse valor reduz o número de streams (mais conservador); diminuí-lo permite mais streams. Defina como 0 para desabilitar essa otimização.
Valores possíveis:
- Inteiro não negativo.
merge_tree_min_bytes_per_task_for_remote_reading
Aliases: filesystem_prefetch_min_bytes_for_single_read_task
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.8 | 2097152 | O valor foi unificado com `filesystem_prefetch_min_bytes_for_single_read_task` |
Número mínimo de bytes lidos por tarefa.
merge_tree_min_read_task_size
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.10 | 8 | Nova configuração |
Limite mínimo rígido para o tamanho da tarefa (mesmo quando o número de grânulos é baixo e o número de threads disponíveis é alto, não alocaremos tarefas menores
merge_tree_min_rows_for_concurrent_read
Se o número de linhas a serem lidas de um arquivo de uma tabela MergeTree exceder merge_tree_min_rows_for_concurrent_read, o ClickHouse tentará realizar a leitura concorrente desse arquivo em várias threads.
Valores possíveis:
- Inteiro positivo.
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.10 | 0 | A configuração está obsoleta |
O número mínimo de linhas que devem ser lidas de um arquivo antes que o motor MergeTree possa paralelizar a leitura durante a leitura a partir do sistema de arquivos remoto. Não recomendamos o uso dessa configuração.
Valores possíveis:
- Inteiro positivo.
merge_tree_min_rows_for_seek
Se a distância entre dois blocos de dados a serem lidos em um arquivo for menor que merge_tree_min_rows_for_seek linhas, o ClickHouse não faz seek no arquivo, mas lê os dados sequencialmente.
Valores possíveis:
- Qualquer número inteiro positivo.
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 26.8 | 1 | Nova configuração para controlar o prefetch de subfluxos de dados compartilhados JSON lidos por meio de uma busca até uma marca em partes Wide. |
Habilita o prefetch de subfluxos de dados compartilhados JSON em partes Wide lidos por meio de uma busca até uma marca. Esse prefetch lê desde o início do grânulo, que geralmente não é a posição a partir da qual o subfluxo é lido, podendo ser desnecessário. Desabilite-o para ignorar esses prefetches.
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.3 | 0 | Para testar o `PartsSplitter` - divide os intervalos de leitura em sobrepostos e não sobrepostos sempre que houver leitura do MergeTree, com a probabilidade especificada. |
Para testar o PartsSplitter - divide os intervalos de leitura em sobrepostos e não sobrepostos sempre que houver leitura do MergeTree, com a probabilidade especificada.
merge_tree_storage_snapshot_sleep_ms
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 25.6 | 0 | Uma nova configuração para depurar a consistência do snapshot de armazenamento em consultas |
Injeta um atraso artificial (em milissegundos) ao criar um snapshot de armazenamento para tabelas MergeTree. Usado apenas para testes e depuração.
Valores possíveis:
- 0 - Sem atraso (padrão)
- N - Atraso em milissegundos
merge_tree_use_const_size_tasks_for_remote_reading
Define se devem ser usadas tarefas de tamanho constante para leitura de uma tabela remota.
merge_tree_use_deserialization_prefixes_cache
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 25.2 | 1 | Uma nova configuração para controlar o uso do cache dos prefixos de desserialização no MergeTree |
Habilita o cache dos metadados das colunas a partir dos prefixos dos arquivos durante a leitura em discos remotos no MergeTree.
merge_tree_use_prefixes_deserialization_thread_pool
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 25.2 | 1 | Uma nova configuração que controla o uso do pool de threads para a desserialização paralela de prefixos no MergeTree |
Habilita o uso do pool de threads para a leitura paralela de prefixos em partes Wide do MergeTree. O tamanho desse pool de threads é controlado pela configuração do servidor max_prefixes_deserialization_thread_pool_size.
merge_tree_use_v1_object_and_dynamic_serialization
Histórico de versões
| Versão | Valor padrão | Comentário |
|---|---|---|
| 24.11 | 0 | Adicionada a nova versão de serialização V2 para os tipos JSON e Dynamic |
Quando ativada, a versão de serialização V1 dos tipos JSON e Dynamic será usada no MergeTree em vez da V2. Alterar essa configuração só passa a ter efeito após a reinicialização do servidor.