Test Environment:
- Platform: Windows 11, .NET 9.0
- Dataset: Star Wars (8 characters, 3 films, 4 planets)
- Hardware: Modern development machine
Current Performance:
| Benchmark | Average Time | Throughput |
|---|---|---|
| Single record lookup | 0.40ms | 2,500 ops/sec |
| Relationship queries | 1.86ms | 537 ops/sec |
| Complex nested queries | 2.07ms | 483 ops/sec |
| Full table scans | 0.74ms | 1,351 ops/sec |
| Range queries (B-tree) | 0.15ms | 6,667 ops/sec |
| Sorted scans | 0.80ms | 1,250 ops/sec |
Configuration Options:
// Page cache size (default: 100 pages = ~400KB)
table.SetPageCacheCapacity(200); // 800KB cache
// MemTable capacity (default: 16MB)
table.SetMemTableCapacity(32 * 1024 * 1024); // 32MB
// B-tree order (default: 32)
table.CreateIndex<int>("age", order: 64); // Higher fanoutMonitoring:
// Index statistics
var stats = table.GetIndexStats();
// Cache hit ratios
var cacheStats = table.GetCacheStats();
// Performance metrics
var metrics = table.GetPerformanceMetrics();- Add indexes on frequently queried columns
- Check cache hit ratios - increase cache size if low
- Profile queries - identify bottlenecks
- Consider denormalization for read-heavy workloads
- Reduce MemTable capacity if not write-heavy
- Reduce page cache size if memory constrained
- Monitor index sizes - consider selective indexing
- Check disk space - database files can grow large
- Monitor page count - indicates storage efficiency
- Consider compression for cold data