MySQL 3분 vs ClickHouse 0.3초 — 같은 쿼리입니다
두줄요약
MySQL과 ClickHouse의 OLTP·OLAP 역할 차이와 열 단위 저장 구조를 비교했습니다. 5,000만 건 테스트와 운영 사례로 대량 집계 성능 및 도입 기준을 제시했습니다.
구조와 흐름
- MySQL의 행 단위 저장과 ClickHouse의 열 단위 저장에 따른 I/O 범위 차이
- ClickHouse의
MergeTree정렬 키를 통한 탐색 범위 축소와 병렬 집계 처리 - 일반 View의 원본 조회와 Materialized View의 사전 집계 결과 조회
선택 이유
- 트랜잭션·단건 처리 중심 OLTP는 MySQL, 대량 집계·분석 중심 OLAP는 ClickHouse로 역할 분리
- 날짜 범위 필터, 다중 그룹핑, 대용량 COUNT·SUM, 로그성 누적 테이블에 적합
- 5,000만 건 이벤트 로그 테스트에서 집계 쿼리 0.2~0.3초, 저장 용량 54% 절감, 대량 적재 약 17배 단축
트레이드오프
- 단건 조회와 건별 INSERT에서 열 단위 저장·Part 생성에 따른 비효율
- 다중 테이블 트랜잭션 정합성 보장 부재로 결제·주문 작업 부적합
- 빈번한 UPDATE·DELETE의 Merge·Mutation 기반 비동기 처리와 높은 재작성 비용
성능/운영 포인트
- 쿼리 필터 조건에 맞춘
ORDER BY정렬 키 설계 필요 - 반복 집계 대시보드에 Materialized View 활용
- 배치 분석 트래픽을 ClickHouse로 분리해 MySQL 슬로 쿼리·장애 조치 위험 완화


