MySQL, 이제 안녕! ClickHouse로 쿼리 속도 245배 UP

by DD
3주 전
조회수 60

MySQL 기반 서비스에서 ClickHouse 도입 후 집계 쿼리 성능(Aggregate Query Performance) 245배 향상

열(Column) 기반 저장 방식(Columnar Storage)을 통해 불필요한 I/O를 줄여 대용량 데이터 분석에 특화됨

MySQL은 단건 조회/INSERT, 트랜잭션(Transaction)에 적합하며, ClickHouse는 대량 데이터 집계에 강점

ClickHouse는 MySQL과 다른 설계 철학을 가지므로, OLTP와 OLAP의 차이점(OLTP vs OLAP)을 이해해야 함

NHN Cloud, 카카오페이 증권 등 다양한 기업에서 ClickHouse 도입 사례(ClickHouse Adoption)를 통해 성능 개선

MySQL과 ClickHouse, 설계 철학의 차이

MySQL은 OLTP(Online Transaction Processing) DB로, ACID(원자성·일관성·격리성·지속성)를 보장하며 단건 조회, INSERT/UPDATE/DELETE에 최적화되어 있다. 반면, ClickHouse는 OLAP(Online Analytical Processing) DB로, 대량 데이터 집계, 통계, 분석에 특화되어 있다.

OLTP: 트랜잭션 정합성(Transaction Consistency) 보장, '1건도 틀리면 안 됨'

OLAP: 빠른 읽기(Fast Reading), 압축(Compression), 처리량(Throughput)에 집중, '1억 건을 빠르게 본다'

MySQL은 행(Row) 단위 저장, ClickHouse는 열(Column) 단위 저장을 사용하며, 각 DB의 설계 철학에 따라 적합한 사용 사례가 다르다.

ClickHouse의 열(Column) 기반 저장 방식

ClickHouse는 데이터를 열(Column) 단위로 저장하여 불필요한 I/O를 최소화(Minimize I/O)한다. MySQL은 행(Row) 단위로 저장하므로, 특정 열만 필요한 쿼리에도 전체 행을 읽어야 한다.

열 단위 저장: 쿼리에 필요한 열만 선택적으로 읽어 분석 쿼리 성능(Analytical Query Performance) 향상

압축(Compression): 같은 타입의 데이터를 연속으로 저장하여 데이터 압축률(Data Compression Ratio) 극대화

파티셔닝(Partitioning) 및 정렬 키(Sorting Key): 데이터 탐색 범위를 줄여 쿼리 속도(Query Speed) 개선

이러한 구조적 차이로 인해 ClickHouse는 대량 데이터 집계 쿼리에서 MySQL보다 월등한 성능을 보인다.

ClickHouse의 성능 벤치마크(Benchmark) 분석

본문에 따르면, 5,000만 건의 이벤트 로그(Event Log)를 대상으로 한 집계 쿼리에서 ClickHouse는 MySQL 대비 최대 693배 빠른 성능(Performance)을 보였다.

집계 쿼리: `SELECT service_id, DATE(created_at), event_type, COUNT(*), SUM(amount) FROM events WHERE created_at BETWEEN '2024-01-01' AND '2024-12-31' GROUP BY 1, 2, 3;`

동시 요청(Concurrent Request) 처리: 10개 동시 요청 시 MySQL은 약 48초, ClickHouse는 약 0.9초

저장 용량(Storage Capacity): 5,000만 건 데이터 저장 시 MySQL 5.6GB, ClickHouse 2.6GB로 약 54% 절감

대량 적재(Bulk Insert): 5,000만 건 적재 시 MySQL 14분, ClickHouse 1분 이내

이러한 벤치마크 결과는 ClickHouse가 대량 데이터 분석에 얼마나 효과적인지 보여준다.

ClickHouse의 적합/부적합 사용 사례

ClickHouse는 대량 데이터 집계, 통계 조회, 로그성 테이블(Log Table)에 적합하며, 단건 조회, 단건 INSERT, 트랜잭션(Transaction), 빈번한 UPDATE/DELETE에는 부적합하다.

적합 케이스: 일별/월별 리포트, 대시보드 통계, 사용자 행동 분석, 이벤트 로그 집계

부적합 케이스: 단건 조회, 단건 INSERT, 트랜잭션(결제, 주문 등), 빈번한 UPDATE/DELETE

ClickHouse는 대량 배치 INSERT에 최적화되어 있으며, 트랜잭션을 지원하지 않으므로 사용 목적에 맞는 DB 선택이 중요하다.

ClickHouse 활용 사례 및 도입 효과

NHN Cloud, 카카오페이 증권, 토스 등 다양한 기업에서 ClickHouse를 도입하여 성능 개선 및 비용 절감 효과를 얻었다.

NHN Cloud Notification Hub: 적재 파이프라인 단순화(Simplified Ingestion Pipeline), 데이터 보정 편의성 향상, 누락 데이터 확인 용이, 조회 성능 향상

카카오페이 증권: 로그 플랫폼 전환을 통해 비용 85% 절감(Cost Reduction), 지연 시간 20초 이내 달성

토스: 랭킹 서비스 개선을 통해 실시간 랭킹 제공(Real-time Ranking) (1초 미만 응답)

Netflix: 대용량 로그 핫 티어(Hot Tier) 구축, 로그 생성 후 20초 이내 검색 가능

이처럼 ClickHouse는 대용량 데이터 처리 및 분석 환경에서 강력한 성능을 발휘한다.

MySQL 3분 vs ClickHouse 0.3초 — 같은 쿼리입니다

댓글 0

첫 번째 댓글을 남겨보세요!