> ## 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.

> Documentación de CREATE DATABASE

# CREATE DATABASE

Crea una base de datos nueva.

```sql theme={null}
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [SETTINGS ...] [COMMENT 'Comment']
```

## Cláusulas

### IF NOT EXISTS

Si la base de datos `db_name` ya existe, ClickHouse no crea una nueva base de datos y:

* No lanza una excepción si se especifica la cláusula.
* Lanza una excepción si no se especifica la cláusula.

### ON CLUSTER

ClickHouse crea la base de datos `db_name` en todos los servidores del clúster especificado. Encontrará más detalles en el artículo sobre [Distributed DDL](/es/reference/statements/distributed-ddl).

### ENGINE

De forma predeterminada, ClickHouse usa su propio motor de base de datos [Atomic](/es/reference/engines/database-engines/atomic). También están disponibles [MySQL](/es/reference/engines/database-engines/mysql), [PostgresSQL](/es/reference/engines/database-engines/postgresql), [MaterializedPostgreSQL](/es/reference/engines/database-engines/materialized-postgresql), [Replicated](/es/reference/engines/database-engines/replicated) y [SQLite](/es/reference/engines/database-engines/sqlite).

### COMMENT

Puede añadir un comentario a la base de datos al crearla.

Se admiten comentarios en todos los motores de base de datos.

**Sintaxis**

```sql theme={null}
CREATE DATABASE db_name ENGINE = engine(...) COMMENT 'Comment'
```

**Ejemplo**

```sql title="Query" theme={null}
CREATE DATABASE db_comment ENGINE = Memory COMMENT 'The temporary database';
SELECT name, comment FROM system.databases WHERE name = 'db_comment';
```

```text title="Response" theme={null}
┌─name───────┬─comment────────────────┐
│ db_comment │ The temporary database │
└────────────┴────────────────────────┘
```

### SETTINGS

La cláusula `SETTINGS` puede usarse sin una cláusula `ENGINE`, en cuyo caso se utiliza el motor de base de datos predeterminado
(`Atomic`). Puede contener tanto ajustes del motor de base de datos como ajustes de consulta comunes; cada
nombre se asigna a la categoría a la que corresponde.

#### disk

El disco utilizado para almacenar los archivos de metadatos de las tablas de la base de datos. Puede indicarse un disco definido en la configuración del
servidor, o definirse uno en línea mediante la función `disk`, igual que se hace con una tabla individual:

```sql theme={null}
CREATE DATABASE db_name SETTINGS disk = 'db_disk';
CREATE DATABASE db_name SETTINGS disk = disk(type = 'local', path = '/var/lib/clickhouse-disks/db_disk');
```

Se aplica a los motores de base de datos que almacenan los metadatos de las tablas en disco (`Atomic`, `Ordinary`). Si no se especifica,
se utiliza el disco definido en la configuración del servidor `database_disk.disk`.

#### lazy\_load\_tables

Cuando está habilitado, las tablas no se cargan por completo durante el arranque de la base de datos. En su lugar, se crea un proxy ligero para cada tabla y el motor de tabla real se materializa al acceder a ella por primera vez. Esto reduce el tiempo de arranque y el uso de memoria en bases de datos con muchas tablas, de las que solo se consulta activamente un subconjunto.

```sql theme={null}
CREATE DATABASE db_name ENGINE = Atomic SETTINGS lazy_load_tables = 1;
```

Se aplica a motores de base de datos que almacenan los metadatos de las tablas en disco (p. ej., `Atomic`, `Ordinary`). Las vistas, las vistas materializadas, los diccionarios, las tablas `Alias`, las tablas `TimeSeries` y las tablas respaldadas por funciones de tabla siempre se cargan de inmediato, independientemente de esta configuración.

**Cuándo usarlo:** Esta configuración es útil para bases de datos con una gran cantidad de tablas (cientos o miles) en las que solo se consulta activamente un subconjunto. Reduce el tiempo de inicio del servidor y el uso de memoria al posponer la creación de los objetos del motor de tabla, el análisis de las partes de datos y la inicialización de hilos en segundo plano hasta el primer acceso.

**Impacto en `system.tables`:**

* Antes de acceder a una tabla, `system.tables` muestra su motor como `TableProxy`. Después del primer acceso, muestra el nombre real del motor (p. ej., `MergeTree`).
* Columnas como `total_rows` y `total_bytes` devuelven `NULL` para las tablas no cargadas, porque el almacenamiento real todavía no se ha creado.

**Interacción con las operaciones DDL:**

* `SELECT`, `INSERT`, `ALTER` y `DROP` activan de forma transparente la carga del motor de tabla real en el primer uso.
* `RENAME TABLE` funciona sin activar la carga.
* Una vez cargada, una tabla permanece cargada durante toda la vida útil del proceso del servidor.

**Limitaciones:**

* Las herramientas de monitorización que dependen de los metadatos de `system.tables` (p. ej., `total_rows`, `engine`) pueden mostrar información incompleta para las tablas no cargadas.
* La primera consulta a una tabla no cargada conlleva un coste puntual de carga (analizar la instrucción `CREATE TABLE` almacenada e inicializar el motor).

Valor predeterminado: `0` (deshabilitado).
