Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

configurações de sessão optimize_limit_*

Estas configurações estão disponíveis em system.settings e são geradas automaticamente a partir do código-fonte.

optimize_limit_by_function_keys

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
26.61Nova configuração que elimina chaves de LIMIT BY que são funções de outras chaves de LIMIT BY.

Elimina funções de outras chaves na seção LIMIT BY.

Exemplo: LIMIT 5 BY x, f(x) passa a ser LIMIT 5 BY x.

optimize_limit_by_in_order

Tipo
Bool
Padrão
1
Histórico de versões
VersãoValor padrãoComentário
26.61Nova configuração para otimizar consultas `LIMIT BY` quando as colunas `BY` são um prefixo da chave de ordenação da tabela.

Otimiza consultas SELECT ... LIMIT N BY <cols> quando <cols> (em qualquer ordem) formam um prefixo da chave de ordenação da tabela, ou passam a formar esse prefixo depois que WHERE col = const fixa as colunas iniciais. Com isso ativado, a fonte lê os dados na ordem da chave primária, de modo que linhas com os mesmos valores nas colunas BY chegam adjacentes umas às outras em cada fluxo. Quando os dados chegam em um único fluxo ordenado, LIMIT BY os filtra em modo de streaming com memória O(1), em vez de construir uma tabela hash com cada combinação distinta de colunas BY encontrada. Quando os dados ordenados chegam em vários fluxos e os mesmos valores de BY podem aparecer em mais de um deles, cada fluxo é primeiro pré-filtrado em modo de streaming para no máximo LIMIT + OFFSET linhas por grupo; depois, os fluxos são combinados e um LIMIT BY final baseado em hash elimina duplicatas de grupos que se estendem por vários fluxos. Essa etapa final ainda mantém uma entrada para cada combinação distinta de colunas BY, mas processa apenas as linhas pré-filtradas.

Navigation