테이블 통계
테이블 통계 (Table statistics)
Trino는 쿼리에 대한 통계 기반 최적화를 지원해요. 쿼리가 이러한 최적화를 활용하려면 Trino가 그 쿼리 안의 테이블에 대한 통계 정보를 가지고 있어야 해요.
출처: 문서
본문
Trino는 쿼리에 대한 통계 기반 최적화를 지원해요. 쿼리가 이러한 최적화를 활용하려면 Trino가 그 쿼리 안의 테이블에 대한 통계 정보를 가지고 있어야 해요.
테이블 통계는 저장된 데이터에 대한 추정치(estimates)예요. 커넥터가 쿼리 플래너에 제공하며, 쿼리 처리의 성능 향상을 가능하게 해요.
사용 가능한 통계 (Available statistics)
Trino에서 사용 가능한 통계는 다음과 같아요.
- 테이블에 대해:
- 행 수(row count): 테이블의 총 행 수
- 테이블의 각 컬럼에 대해:
- 데이터 크기(data size): 읽어야 할 데이터의 크기
- null 비율(nulls fraction): null 값의 비율
- 고유 값 수(distinct value count): 고유 값의 개수
- 최소 값(low value): 컬럼에서 가장 작은 값
- 최대 값(high value): 컬럼에서 가장 큰 값
특정 쿼리에 사용 가능한 통계 집합은 사용 중인 커넥터에 따라 달라지고, 테이블에 따라 다를 수도 있어요. 예를 들어 Hive 커넥터는 현재 데이터 크기에 대한 통계를 제공하지 않아요.
테이블 통계는 Trino SQL 인터페이스에서 SHOW STATS 명령으로 확인할 수 있어요.
커넥터 지원에 따라, Trino가 INSERT, UPDATE, DELETE 같은 데이터 관리 문장을 실행할 때 테이블 통계가 갱신돼요. 예를 들어 Delta Lake 커넥터, Hive 커넥터, Iceberg 커넥터는 모두 Trino로부터의 테이블 통계 관리를 지원해요.
ANALYZE 명령으로 통계 수집을 초기화할 수도 있어요. 다른 시스템이 Trino 없이 데이터를 조작해서 Trino가 추적하는 통계가 오래된 경우에 필요해요. 다른 커넥터는 기반 데이터 소스가 테이블 통계를 관리하도록 하거나, 테이블 통계 사용을 전혀 지원하지 않아요.
더 알아보기 (Learn more)
테이블 통계가 쿼리 최적화에 쓰이는 방식을 배웠어요. 이어서 EXPLAIN의 비용(Cost in EXPLAIN)을 살펴보면 좋아요.