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

> Contiene una fila por cada entrada almacenada actualmente en la caché de columnas deserializadas. La caché mantiene en memoria las columnas de las partes de datos de `MergeTree` que ya se han leído y deserializado, de modo que las lecturas repetidas del mismo rango de filas evitan volver a pagar el coste de la descompresión y la deserialización.

# system.columns_cache

<h2 id="description">
  Descripción
</h2>

Contiene una fila por cada entrada almacenada actualmente en la caché de columnas deserializadas. La caché mantiene en memoria las columnas de las partes de datos de `MergeTree` que ya se han leído y deserializado, de modo que las lecturas repetidas del mismo rango de filas no vuelven a pagar el coste de la descompresión y la deserialización.

Cada entrada corresponde a un rango contiguo de gránulos `[row_begin, row_end)` de una única columna de una única parte de datos, dentro de una franja fija de la parte de unas 65536 filas. Las lecturas se sirven desde la caché gránulo a gránulo, y las franjas son las mismas en todas las lecturas de la parte, por lo que las entradas no dependen de cómo una consulta divida la parte en rangos de marcas: una lectura que solo accede a algunos gránulos de una franja almacena en caché únicamente esos gránulos, y los rangos adyacentes escritos por distintas lecturas se fusionan.

La caché identifica las entradas por el UUID de la tabla, por lo que solo está activa para tablas de bases de datos que asignan UUID, como `Atomic`, `Replicated` y `Shared` (el motor de base de datos predeterminado en ClickHouse Cloud). Las tablas de las bases de datos heredadas `Ordinary` no tienen UUID y quedan excluidas de la caché sin aviso. Solo las partes anchas (wide) participan en la caché; las partes compactas quedan excluidas sin aviso.

La caché se controla mediante los ajustes de servidor `columns_cache_size` (de forma predeterminada, `columns_cache_size_to_ram_ratio` de la memoria disponible para el servidor) y `columns_cache_size_ratio`, y mediante los ajustes de consulta `use_columns_cache`, `enable_reads_from_columns_cache`, `enable_writes_to_columns_cache`, `columns_cache_max_estimated_bytes_to_write_to_cache` y `columns_cache_max_bytes_to_write_to_cache`. Puede vaciarse manualmente con [`SYSTEM DROP COLUMNS CACHE`](/es/reference/statements/system).

Las filas se filtran según los derechos de acceso: una entrada solo es visible para los usuarios que pueden ver tanto su tabla como su columna, es decir, que tienen `SHOW TABLES` sobre la tabla y `SHOW COLUMNS` sobre la columna. Conceder `SHOW COLUMNS` sobre `*.*` no anula una revocación sobre una tabla o columna concreta, ya que esta tabla expone datos operativos (nombres de partes, rangos de filas y tamaños en caché) y no solo el esquema. Las entradas de una tabla que ya no existe no tienen ningún nombre que comprobar, por lo que solo son visibles para los usuarios que tienen `SHOW COLUMNS` a nivel global.

<h2 id="columns">
  Columnas
</h2>

* `database` ([String](/es/reference/data-types/string)) — Nombre de la base de datos de la tabla a la que pertenece la parte.
* `table` ([String](/es/reference/data-types/string)) — Nombre de la tabla.
* `table_uuid` ([UUID](/es/reference/data-types/uuid)) — UUID de la tabla. No cambia aunque se cambie el nombre de la tabla.
* `part` ([String](/es/reference/data-types/string)) — Nombre de la parte de datos.
* `column` ([String](/es/reference/data-types/string)) — Nombre de la columna.
* `row_begin` ([UInt64](/es/reference/data-types/int-uint)) — Índice de la fila inicial del rango almacenado en caché (incluido).
* `row_end` ([UInt64](/es/reference/data-types/int-uint)) — Índice de la fila final del rango almacenado en caché (excluido).
* `rows` ([UInt64](/es/reference/data-types/int-uint)) — Número de filas del rango almacenado en caché (`row_end - row_begin`).
* `bytes` ([UInt64](/es/reference/data-types/int-uint)) — Memoria que ocupa la entrada, en bytes: el tamaño asignado de la columna almacenada en caché más una pequeña sobrecarga por entrada. Este es el valor con el que se limita la caché, por lo que la suma de esta columna para todas las entradas no supera `columns_cache_size`. Puede ser mayor que el tamaño lógico de las filas, ya que una columna conserva la capacidad con la que se asignó.

<h2 id="examples">
  Ejemplos
</h2>

Memoria total utilizada por las columnas almacenadas en caché, por tabla:

```sql theme={null}
SELECT
    database,
    table,
    formatReadableSize(sum(bytes)) AS size,
    sum(rows) AS rows,
    count() AS entries
FROM system.columns_cache
GROUP BY database, table
ORDER BY sum(bytes) DESC
```

Entradas de caché individuales más grandes:

```sql theme={null}
SELECT database, table, part, column, row_begin, row_end, rows, formatReadableSize(bytes) AS size
FROM system.columns_cache
ORDER BY bytes DESC
LIMIT 10
```

<h2 id="see-also">
  Véase también
</h2>

* [SYSTEM DROP COLUMNS CACHE](/es/reference/statements/system) — Sentencia que elimina todas las entradas de la caché de columnas.
