벤치마크
DBX와 다른 임베디드 데이터베이스 간의 성능 비교 벤치마크입니다.
목차
- 요약 (Executive Summary)
- 테스트 환경
- 테스트 대상 데이터베이스
- 벤치마크 방법론
- 상세 벤치마크 결과
- 성능 최적화 기술
- 아키텍처 강점
- 벤치마크 재현 방법
- 결론
- 다음 단계
요약 (Executive Summary)
DBX는 순수 Rust로 작성된 고성능 임베디드 데이터베이스 엔진입니다. v0.0.6-beta에서 모든 주요 작업(INSERT, GET, SCAN)에서 1위를 달성했습니다.
최신 벤치마크 결과 (v0.0.6-beta, 10,000개 레코드)
| 작업 | DBX | SQLite | Sled | Redb | 순위 |
|---|---|---|---|---|---|
| INSERT | 44.92ms 🥇 | 53.06ms | 60.56ms | 54.05ms | 1위 |
| GET | 2.84ms 🥇 | 37.39ms | 5.88ms | 3.25ms | 1위 |
| SCAN | 1.60ms 🥇 | 2.98ms | 4.64ms | 2.15ms | 1위 |
경쟁사 대비 성능 우위
vs SQLite:
- INSERT: 18% 빠름
- GET: 1,217% 빠름 (13배)
- SCAN: 86% 빠름
vs Redb:
- INSERT: 20% 빠름
- GET: 14% 빠름
- SCAN: 34% 빠름
vs Sled:
- INSERT: 35% 빠름
- GET: 107% 빠름 (2배)
- SCAN: 190% 빠름 (2.9배)
버전: DBX v0.0.6-beta
테스트 날짜: 2026년 2월 16일
보고서 유형: 공식 성능 비교 분석
테스트 환경
하드웨어 사양
| 항목 | 사양 |
|---|---|
| 운영체제 | Microsoft Windows 11 Pro (Build 26200) |
| 시스템 유형 | x64 기반 PC |
| 프로세서 | 1 Processor (Multiprocessor Free) |
| 메모리 | 16,273 MB (약 16GB) |
소프트웨어 환경
| 컴포넌트 | 버전 |
|---|---|
| Rust Compiler | rustc 1.92.0 (ded5c06cf 2025-12-08) |
| Cargo | 1.92.0 (344c4567c 2025-10-21) |
| 빌드 프로필 | release (최적화 활성화) |
| 벤치마크 프레임워크 | Criterion.rs v0.5 |
테스트 대상 데이터베이스
| 데이터베이스 | 버전 | 언어 | 특징 |
|---|---|---|---|
| DBX | 0.0.6-beta | Pure Rust | 5-Tier Hybrid Storage, MVCC |
| SQLite | 0.32 (rusqlite) | C (bundled) | 업계 표준 임베디드 DB |
| Sled | 0.34 | Pure Rust | Lock-free B+ tree |
| Redb | 2.1 | Pure Rust | LMDB 영감, 파일 전용 |
벤치마크 방법론
측정 프레임워크
- 도구: Criterion.rs v0.5 (Rust 표준 벤치마킹 라이브러리)
- 샘플 수: 테스트당 100회 반복
- 웜업 (Warmup): 각 테스트 전 3초간 실행
- 통계 분석: 평균, 표준 편차, 95% 신뢰 구간
- 이상치 감지: 자동 이상치 제거 및 보고
공정한 비교 조건
DBX 설정
// Default features 활성화
features = ["wal", "mvcc", "index"]
// 벤치마크용 durability 비활성화 (공정한 비교)
durability = DurabilityLevel::None
모든 데이터베이스 공통 설정
- 트랜잭션/배치 모드
- 개별 INSERT 대신 배치 커밋을 사용한 공정한 비교
- DBX:
begin()→insert()× N →commit() - SQLite:
unchecked_transaction()→execute()× N →commit() - Sled:
insert()× N →flush() - Redb:
begin_write()→insert()× N →commit()
- WAL (Write-Ahead Logging) 비활성화
- DBX:
durability = DurabilityLevel::None - SQLite:
PRAGMA synchronous = OFF - Sled: 기본 설정 (flush 기반)
- Redb: 기본 설정 (트랜잭션 기반)
- DBX:
- 동일한 데이터 크기
- Key:
"key_{i}"형식의 문자열 - Value:
"value_data_{i}"형식의 문자열 - 테스트 규모: 10,000개 레코드
- Key:
상세 벤치마크 결과
INSERT 성능 (10,000개 레코드)
| 데이터베이스 | 평균 시간 | 표준 편차 | 처리량 (rec/sec) | DBX 대비 |
|---|---|---|---|---|
| DBX | 44.92ms | ±0.20ms | 222,619 | 1.0× (기준) |
| SQLite | 53.06ms | ±0.38ms | 188,465 | 0.85× (18% 느림) |
| Redb | 54.05ms | ±0.72ms | 185,015 | 0.83× (20% 느림) |
| Sled | 60.56ms | ±1.55ms | 165,123 | 0.74× (35% 느림) |
DBX 우위:
- ✅ 모든 경쟁사보다 빠름
- ✅ SQLite 대비 18% 빠름
- ✅ 안정적인 성능 (낮은 표준 편차)
GET 성능 (10,000개 레코드)
| 데이터베이스 | 평균 시간 | 표준 편차 | 처리량 (rec/sec) | DBX 대비 |
|---|---|---|---|---|
| DBX | 2.84ms | ±0.01ms | 3,521,127 | 1.0× (기준) |
| Redb | 3.25ms | ±0.17ms | 3,076,923 | 0.87× (14% 느림) |
| Sled | 5.88ms | ±0.03ms | 1,700,680 | 0.48× (107% 느림) |
| SQLite | 37.39ms | ±0.48ms | 267,452 | 0.08× (1,217% 느림) |
DBX 우위:
- ✅ SQLite 대비 13배 빠름
- ✅ Redb 대비 14% 빠름
- ✅ Sled 대비 2배 빠름
SCAN 성능 (10,000개 레코드)
| 데이터베이스 | 평균 시간 | 표준 편차 | 처리량 (rec/sec) | DBX 대비 |
|---|---|---|---|---|
| DBX | 1.60ms | ±0.07ms | 6,250,000 | 1.0× (기준) |
| Redb | 2.15ms | ±0.02ms | 4,651,163 | 0.74× (34% 느림) |
| SQLite | 2.98ms | ±0.16ms | 3,355,705 | 0.54× (86% 느림) |
| Sled | 4.64ms | ±0.10ms | 2,155,172 | 0.34× (190% 느림) |
DBX 우위:
- ✅ 모든 경쟁사보다 빠름
- ✅ Redb 대비 34% 빠름
- ✅ SQLite 대비 86% 빠름
성능 최적화 기술
Phase 1: GET 최적화 (+70% 개선)
- Inline 속성 추가
#[inline(always)]속성으로 함수 호출 오버헤드 제거- 컴파일러 최적화 향상
- MVCC 오버헤드 제거
- Hot path에서 MVCC 체크 제거
- 불필요한 타임스탬프 획득 비용 절감
- 코드 경로 단순화
- 조건문 제거로 분기 예측 개선
- CPU 파이프라인 효율 향상
결과: 9.63ms → 2.84ms (3.4배 빠름)
Phase 2: SCAN 최적화 (+57% 개선)
- Delta Store Fast-path
- Delta가 비어있을 때 조기 반환
- 불필요한 스캔 작업 제거
- 2-way Merge 최적화
- Delta가 비어있으면 WOS 직접 스캔
- Merge 오버헤드 완전 제거
- 캐시 지역성 개선
- 단일 스캔으로 메모리 접근 패턴 최적화
- CPU 캐시 효율 향상
결과: 3.70ms → 1.60ms (2.3배 빠름)
아키텍처 강점
5-Tier Hybrid Storage
- Delta Store (Tier 1)
- DashMap + SkipMap (Lock-free)
- 초고속 INSERT 성능
- WOS (Tier 2)
- BTreeMap (정렬된 저장소)
- 효율적인 범위 스캔
- 최적화된 데이터 흐름
- Delta → WOS 자동 flush
- 메모리와 디스크의 효율적 활용
벤치마크 재현 방법
# 프로젝트 클론
git clone https://github.com/ByteLogicCore/DBX.git
cd DBX
# 전체 비교 벤치마크 실행
cargo bench --bench official_db_comparison
# 개별 데이터베이스 벤치마크
cargo bench --bench official_db_comparison -- dbx_
cargo bench --bench official_db_comparison -- sqlite_
cargo bench --bench official_db_comparison -- sled_
cargo bench --bench official_db_comparison -- redb_
결론
DBX v0.0.6-beta는 모든 주요 작업(INSERT, GET, SCAN)에서 1위를 달성했습니다.
핵심 성과
- ✅ INSERT 1위: 44.92ms (경쟁사 대비 18-35% 빠름)
- ✅ GET 1위: 2.84ms (SQLite 대비 13배 빠름)
- ✅ SCAN 1위: 1.60ms (경쟁사 대비 34-190% 빠름)
기술적 차별점
- 5-Tier Hybrid Storage: 메모리와 디스크의 효율적 활용
- Lock-Free 아키텍처: DashMap + SkipMap
- Pure Rust: 메모리 안전성과 제로 비용 추상화
- 최적화된 알고리즘: Fast-path 및 inline 최적화
DBX는 고성능 쓰기 작업과 균형 잡힌 읽기 성능이 필요한 애플리케이션에 최적의 선택입니다.