Skip to main content

Descrição

Contém uma linha para cada entrada atualmente armazenada no cache de colunas desserializadas. O cache mantém em memória colunas já lidas e desserializadas de partes de dados MergeTree, de modo que leituras repetidas do mesmo intervalo de linhas não precisem arcar novamente com o custo de descompressão e desserialização. Cada entrada corresponde a um intervalo contíguo de grânulos [row_begin, row_end) de uma única coluna de uma única parte de dados, dentro de um stripe fixo da parte com cerca de 65536 linhas. As leituras são atendidas pelo cache grânulo a grânulo, e os stripes são os mesmos em todas as leituras da parte; assim, as entradas não dependem de como uma consulta divide a parte em intervalos de marcas: uma leitura que acessa apenas alguns grânulos de um stripe armazena somente esses grânulos em cache, e intervalos adjacentes gravados por leituras diferentes são mesclados. O cache identifica as entradas pelo UUID da tabela; por isso, ele só fica ativo para tabelas em bancos de dados que atribuem UUIDs, como Atomic, Replicated e Shared (o motor de banco de dados padrão no ClickHouse Cloud). Tabelas em bancos de dados legados Ordinary não têm UUID e são excluídas do cache sem nenhum aviso. Somente partes wide participam do cache; partes compactas são excluídas sem nenhum aviso. O cache é controlado pelas configurações de servidor columns_cache_size (por padrão, a fração columns_cache_size_to_ram_ratio da memória disponível para o servidor) e columns_cache_size_ratio, e pelas configurações em nível de consulta use_columns_cache, enable_reads_from_columns_cache, enable_writes_to_columns_cache, columns_cache_max_estimated_bytes_to_write_to_cache e columns_cache_max_bytes_to_write_to_cache. Ele pode ser descartado manualmente com SYSTEM DROP COLUMNS CACHE. As linhas são filtradas por direitos de acesso: uma entrada só é visível para um usuário que possa ver tanto a tabela quanto a coluna correspondentes, ou seja, que tenha SHOW TABLES na tabela e SHOW COLUMNS na coluna. Conceder SHOW COLUMNS em *.* não anula uma revogação aplicada a uma tabela ou coluna específica, pois esta tabela expõe dados operacionais (nomes de partes, intervalos de linhas e tamanhos em cache), e não apenas o esquema. Entradas de uma tabela que não existe mais não têm um nome a ser verificado; por isso, só ficam visíveis para usuários que tenham SHOW COLUMNS globalmente.

Colunas

  • database (String) — Nome do banco de dados da tabela à qual a parte pertence.
  • table (String) — Nome da tabela.
  • table_uuid (UUID) — UUID da tabela. Permanece o mesmo mesmo após renomeações.
  • part (String) — Nome da parte de dados.
  • column (String) — Nome da coluna.
  • row_begin (UInt64) — Índice da linha inicial do intervalo em cache (inclusivo).
  • row_end (UInt64) — Índice da linha final do intervalo em cache (exclusivo).
  • rows (UInt64) — Número de linhas no intervalo em cache (row_end - row_begin).
  • bytes (UInt64) — Memória retida pela entrada, em bytes: o tamanho alocado da coluna em cache mais uma pequena sobrecarga por entrada. É essa a quantidade usada como limite do cache, de modo que a soma desta coluna em todas as entradas não ultrapassa columns_cache_size. Pode ser maior que o tamanho lógico das linhas, pois uma coluna mantém a capacidade com que foi alocada.

Exemplos

Memória total consumida pelas colunas em cache, por tabela:
Maiores entradas individuais do cache:

Veja também

Última modificação em 14 de outubro de 2026