절
IF NOT EXISTS
db_name 데이터베이스가 이미 존재하면 ClickHouse는 새 데이터베이스를 생성하지 않으며, 다음과 같이 동작합니다.
- IF NOT EXISTS 절이 지정된 경우 예외를 발생시키지 않습니다.
- IF NOT EXISTS 절이 지정되지 않은 경우 예외를 발생시킵니다.
ON CLUSTER
db_name 데이터베이스를 생성합니다. 자세한 내용은 분산 DDL 문서를 참조하십시오.
ENGINE
COMMENT
Query
Response
설정
lazy_load_tables
Atomic, Ordinary)에 적용됩니다. 뷰, materialized view, 딕셔너리, 그리고 테이블 함수로 생성되는 테이블은 이 설정과 관계없이 항상 즉시 로드됩니다.
사용 시기: 이 설정은 많은 수의 테이블(수백 개 또는 수천 개)이 있는 데이터베이스에서, 그중 일부에만 쿼리가 집중되는 경우에 유용합니다. 처음 접근할 때까지 테이블 엔진 객체 생성, 데이터 파트 스캔, 백그라운드 스레드 초기화를 지연하여 서버 시작 시간과 메모리 사용량을 줄여줍니다.
system.tables에 미치는 영향:
- 테이블에 접근하기 전에는
system.tables에 엔진이TableProxy로 표시됩니다. 처음 접근한 후에는 실제 엔진 이름(예:MergeTree)이 표시됩니다. total_rows,total_bytes같은 컬럼은 실제 스토리지가 아직 생성되지 않았기 때문에 로드되지 않은 테이블에 대해NULL을 반환합니다.
SELECT,INSERT,ALTER,DROP은 처음 사용할 때 실제 테이블 엔진 로드를 자동으로 트리거합니다.RENAME TABLE은 로드를 트리거하지 않고 작동합니다.- 테이블이 한 번 로드되면 서버 프로세스가 실행되는 동안 계속 로드된 상태로 유지됩니다.
system.tables메타데이터(예:total_rows,engine)에 의존하는 모니터링 도구는 로드되지 않은 테이블에 대해 불완전한 정보를 볼 수 있습니다.- 로드되지 않은 테이블에 대한 첫 번째 쿼리에는 일회성 로딩 비용(저장된
CREATE TABLE문을 파싱하고 엔진을 초기화하는 작업)이 발생합니다.
0(비활성화).