Indexing Quick Start
The fastest way to use custom indexing in DBX.
1. Creating a Bloom Filter Index
use dbx_core::Database;
let db = Database::open("./db")?;
// Create a Bloom Filter index
db.create_index("users", "email")?;
2. Fast Lookup with Indices
// Lookup without index (Slower)
let value = db.get("users", b"user:1")?;
// Lookup with index (Fast)
db.create_index("users", "id")?;
let value = db.get("users", b"user:1")?; // Utilizes Bloom Filter
3. Rebuilding Indices
// Rebuild index (after major data changes)
db.rebuild_index("users")?;
4. Checking Index Statistics
// Query index info
let stats = db.index_stats("users")?;
println!("Index size: {} bytes", stats.size);
println!("False positive rate: {:.4}%", stats.fpr * 100.0);
5. Complete Example
use dbx_core::Database;
fn main() -> dbx_core::DbxResult<()> {
let db = Database::open("./indexed_db")?;
// Insert data
for i in 0..10000 {
let key = format!("user:{}", i).into_bytes();
let value = format!("User {}", i).into_bytes();
db.insert("users", &key, &value)?;
}
// Create Bloom Filter index
db.create_index("users", "id")?;
println!("✓ Index created for 10,000 users");
// Rapid lookup
let value = db.get("users", b"user:5000")?;
println!("✓ Fast lookup: {:?}", value);
Ok(())
}
Next Steps
- Indexing Guide — Complete indexing guide
- SQL Quick Start — SQL query optimization
- Quick Start — Basic CRUD