메인 콘텐츠로 건너뛰기
새 데이터베이스를 생성합니다.
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)] [SETTINGS ...] [COMMENT 'Comment']

IF NOT EXISTS

db_name 데이터베이스가 이미 존재하면 ClickHouse는 새 데이터베이스를 생성하지 않으며, 다음과 같이 동작합니다.
  • IF NOT EXISTS 절이 지정된 경우 예외를 발생시키지 않습니다.
  • IF NOT EXISTS 절이 지정되지 않은 경우 예외를 발생시킵니다.

ON CLUSTER

ClickHouse는 지정된 클러스터에 있는 모든 서버에 db_name 데이터베이스를 생성합니다. 자세한 내용은 분산 DDL 문서를 참조하십시오.

ENGINE

기본적으로 ClickHouse는 자체 Atomic 데이터베이스 엔진을 사용합니다. 이외에도 MySQL, PostgresSQL, MaterializedPostgreSQL, Replicated, SQLite가 있습니다.

COMMENT

데이터베이스를 생성할 때 주석을 추가할 수 있습니다. 주석은 모든 데이터베이스 엔진에서 지원됩니다. 구문
CREATE DATABASE db_name ENGINE = engine(...) COMMENT 'Comment'
예시
Query
CREATE DATABASE db_comment ENGINE = Memory COMMENT 'The temporary database';
SELECT name, comment FROM system.databases WHERE name = 'db_comment';
Response
┌─name───────┬─comment────────────────┐
│ db_comment │ The temporary database │
└────────────┴────────────────────────┘

설정

lazy_load_tables

활성화하면 데이터베이스 시작 시 테이블을 완전히 로드하지 않습니다. 대신 각 테이블에 대해 경량 프록시를 생성하고, 실제 테이블 엔진은 처음 액세스할 때 구체화합니다. 이렇게 하면 많은 테이블이 있는 데이터베이스에서 실제로는 일부만 쿼리하는 경우 시작 시간과 메모리 사용량을 줄일 수 있습니다.
CREATE DATABASE db_name ENGINE = Atomic SETTINGS lazy_load_tables = 1;
디스크에 테이블 메타데이터를 저장하는 데이터베이스 엔진(예: Atomic, Ordinary)에 적용됩니다. 뷰, materialized view, 딕셔너리, 그리고 테이블 함수로 생성되는 테이블은 이 설정과 관계없이 항상 즉시 로드됩니다. 사용 시기: 이 설정은 많은 수의 테이블(수백 개 또는 수천 개)이 있는 데이터베이스에서, 그중 일부에만 쿼리가 집중되는 경우에 유용합니다. 처음 접근할 때까지 테이블 엔진 객체 생성, 데이터 파트 스캔, 백그라운드 스레드 초기화를 지연하여 서버 시작 시간과 메모리 사용량을 줄여줍니다. 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(비활성화).
마지막 수정일 2026년 6월 10일