- 데이터가 저장되는 방식과 위치, 데이터를 기록할 위치, 그리고 데이터를 읽어올 위치
- 어떤 쿼리를 지원하는지와 그 처리 방식
- 동시 데이터 액세스
- 인덱스가 있는 경우 그 사용 방식
- 요청을 멀티스레드로 실행할 수 있는지 여부
- 데이터 복제 매개변수
엔진 계열
MergeTree
MergeTree 계열 엔진은 데이터 복제(Replicated* 버전의 엔진 사용), 파티셔닝, 보조 데이터 스키핑 인덱스, 그리고 다른 엔진에서는 지원되지 않는 기타 기능을 지원합니다.
이 계열의 엔진:
Log
통합 엔진
특수 엔진
가상 컬럼
CREATE TABLE 쿼리에서 지정할 수 없으며, SHOW CREATE TABLE 및 DESCRIBE TABLE 쿼리 결과에도 표시되지 않습니다. 또한 가상 컬럼은 읽기 전용이므로 데이터를 삽입할 수도 없습니다.
가상 컬럼의 데이터를 선택하려면 SELECT 쿼리에서 해당 이름을 명시해야 합니다. SELECT *는 가상 컬럼의 값을 반환하지 않습니다.
테이블의 가상 컬럼 중 하나와 같은 이름의 컬럼을 사용해 테이블을 생성하면 해당 가상 컬럼에 접근할 수 없게 됩니다. 이는 권장되지 않습니다. 충돌을 방지하기 위해 가상 컬럼 이름에는 일반적으로 밑줄 접두사가 붙습니다.
-
_table— 데이터를 읽어온 테이블의 이름을 포함합니다. 유형: String. 사용 중인 테이블 엔진과 관계없이 모든 테이블에는_table이라는 공통 가상 컬럼이 포함됩니다. 머지 테이블 엔진으로 테이블을 쿼리할 때는WHERE/PREWHERE절에서_table에 대한 상수 조건을 설정할 수 있습니다(예:WHERE _table='xyz'). 이 경우_table조건을 만족하는 테이블에 대해서만 읽기 작업이 수행되므로_table컬럼은 인덱스 역할을 합니다.SELECT ... FROM (... UNION ALL ...)형식의 쿼리를 사용할 때는_table컬럼을 지정하여 반환된 행이 실제로 어느 테이블에서 왔는지 확인할 수 있습니다.