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

> Документация по команде CREATE DATABASE

# CREATE DATABASE

Создаёт новую базу данных.

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

## Секции

### IF NOT EXISTS

Если база данных `db_name` уже существует, ClickHouse не создает новую базу данных и:

* Не генерирует исключение, если указана эта конструкция.
* Генерирует исключение, если эта конструкция не указана.

### ON CLUSTER

ClickHouse создает базу данных `db_name` на всех серверах указанного кластера. Подробности см. в статье [Distributed DDL](/ru/reference/statements/distributed-ddl).

### ДВИЖОК

По умолчанию ClickHouse использует собственный движок базы данных [Atomic](/ru/reference/engines/database-engines/atomic). Также существуют [MySQL](/ru/reference/engines/database-engines/mysql), [PostgresSQL](/ru/reference/engines/database-engines/postgresql), [MaterializedPostgreSQL](/ru/reference/engines/database-engines/materialized-postgresql), [Replicated](/ru/reference/engines/database-engines/replicated), [SQLite](/ru/reference/engines/database-engines/sqlite).

### COMMENT

Вы можете добавить комментарий к базе данных при её создании.

Комментарии поддерживаются всеми движками баз данных.

**Синтаксис**

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

**Пример**

```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

Предложение `SETTINGS` может использоваться без предложения `ENGINE` — в этом случае применяется движок баз данных по умолчанию (`Atomic`). Оно может содержать как настройки движка баз данных, так и обычные настройки запроса: каждое имя относится к одной из этих двух групп и обрабатывается соответствующим образом.

#### disk

Диск, используемый для хранения файлов метаданных таблиц базы данных. Можно указать имя диска из конфигурации сервера либо определить его inline с помощью функции `disk` — так же, как это делается для отдельной таблицы:

```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');
```

Применяется к движкам баз данных, которые хранят метаданные таблиц на диске (`Atomic`, `Ordinary`). Если не указан,
используется диск, заданный в настройке сервера `database_disk.disk`.

#### lazy\_load\_tables

Когда этот параметр включен, таблицы не загружаются полностью при запуске базы данных. Вместо этого для каждой таблицы создается облегченный прокси, а реальный движок таблицы материализуется при первом обращении. Это сокращает время запуска и использование памяти для баз данных с большим количеством таблиц, когда активно запрашивается только часть из них.

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

Применяется к движкам баз данных, которые хранят метаданные таблиц на диске (например, `Atomic`, `Ordinary`). Представления, materialized view, словари, таблицы `Alias`, таблицы `TimeSeries` и таблицы, использующие table function, всегда загружаются сразу независимо от этого параметра.

**Когда использовать:** Этот параметр полезен для баз данных с большим количеством таблиц (сотнями или тысячами), когда активно запрашивается только часть из них. Он уменьшает время запуска сервера и использование памяти, откладывая создание объектов движка таблицы, сканирование частей данных и инициализацию фоновых потоков до первого обращения.

**Влияние на `system.tables`:**

* Пока к таблице не обратились, `system.tables` показывает её движок как `TableProxy`. После первого обращения отображается реальное имя движка (например, `MergeTree`).
* Столбцы вроде `total_rows` и `total_bytes` возвращают `NULL` для незагруженных таблиц, поскольку реальное хранилище ещё не создано.

**Взаимодействие с DDL-операциями:**

* `SELECT`, `INSERT`, `ALTER`, `DROP` прозрачно инициируют загрузку реального движка таблицы при первом использовании.
* `RENAME TABLE` работает без инициирования загрузки.
* После загрузки таблица остаётся загруженной на всё время работы серверного процесса.

**Ограничения:**

* Инструменты мониторинга, которые полагаются на метаданные `system.tables` (например, `total_rows`, `engine`), могут показывать неполную информацию для незагруженных таблиц.
* Первый запрос к незагруженной таблице приводит к разовым затратам на загрузку (разбор сохранённого оператора `CREATE TABLE` и инициализацию движка).

Значение по умолчанию: `0` (отключено).
