Indexing Quick Start

DBX에서 인덱스를 사용하는 가장 빠른 방법입니다.

1. Bloom Filter 인덱스 생성

use dbx_core::Database;

let db = Database::open("./db")?;

// Bloom Filter 인덱스 생성
db.create_index("users", "email")?;

2. 인덱스를 활용한 빠른 조회

// 인덱스 없이 조회 (느림)
let value = db.get("users", b"user:1")?;

// 인덱스로 조회 (빠름)
db.create_index("users", "id")?;
let value = db.get("users", b"user:1")?;  // Bloom Filter 활용

3. 인덱스 재구축

// 인덱스 재구축 (데이터 변경 후)
db.rebuild_index("users")?;

4. 인덱스 통계 확인

// 인덱스 정보 조회
let stats = db.index_stats("users")?;
println!("Index size: {} bytes", stats.size);
println!("False positive rate: {:.4}%", stats.fpr * 100.0);

5. 완전한 예제

use dbx_core::Database;

fn main() -> dbx_core::DbxResult<()> {
    let db = Database::open("./indexed_db")?;
    
    // 데이터 삽입
    for i in 0..10000 {
        let key = format!("user:{}", i).into_bytes();
        let value = format!("User {}", i).into_bytes();
        db.insert("users", &key, &value)?;
    }
    
    // Bloom Filter 인덱스 생성
    db.create_index("users", "id")?;
    
    println!("✓ Index created for 10,000 users");
    
    // 빠른 조회
    let value = db.get("users", b"user:5000")?;
    println!("✓ Fast lookup: {:?}", value);
    
    Ok(())
}

Next Steps


Copyright © 2026 ByteLogicCore. MIT OR Apache-2.0 License.

This site uses Just the Docs, a documentation theme for Jekyll.