This guide lists recommended configuration per use case. Copy settings into your setup (DatabaseConfig or DatabaseOptions).
- Storage: PageBased
- DatabaseConfig:
EnablePageCache = truePageCacheCapacity = 20000UseMemoryMapping = trueUseGroupCommitWal = trueWalMaxBatchDelayMs = 5WalDurabilityMode = DurabilityMode.FullSync
- Connection: pool connections (Cache=Shared), prefer short transactions.
- Storage: SingleFile
- DatabaseOptions:
EnableMemoryMapping = trueFileShareMode = FileShare.ReadCreateImmediately = true
- DatabaseConfig:
EnablePageCache = truePageCacheCapacity = 25000
- Notes: Open as read-only where possible.
- Storage: PageBased
- DatabaseConfig:
HighSpeedInsertMode = trueUseGroupCommitWal = trueEnableAdaptiveWalBatching = trueWalBatchMultiplier = 512WalDurabilityMode = DurabilityMode.AsyncEnablePageCache = truePageCacheCapacity = 1000
- DatabaseOptions:
WalBufferSizePages = 4096
- Notes: Disable encryption during import if safe; re-enable after.
- Storage: Columnar (auto)
- DatabaseConfig:
EnableQueryCache = trueQueryCacheSize = 5000EnablePageCache = truePageCacheCapacity = 20000UseMemoryMapping = true
- Notes: Build indexes for filter columns; rely on SIMD aggregates.
- Storage: SingleFile
- DatabaseOptions:
EnableMemoryMapping = trueFileShareMode = FileShare.NoneCreateImmediately = trueWalBufferSizePages = 2048
- DatabaseConfig:
EnablePageCache = truePageCacheCapacity = 10000
- Storage: PageBased
- DatabaseConfig:
UseGroupCommitWal = trueEnableAdaptiveWalBatching = trueWalBatchMultiplier = 256WalDurabilityMode = DurabilityMode.Async
- Notes: Shard large write streams; avoid long transactions.
var opts = DatabaseOptions.CreateSingleFileDefault();
opts.EnableMemoryMapping = true;
opts.FileShareMode = FileShare.Read;
opts.WalBufferSizePages = 2048;
opts.CreateImmediately = true;
var cfg = new DatabaseConfig
{
EnablePageCache = true,
PageCacheCapacity = 25000,
UseMemoryMapping = true
};
var db = factory.CreateWithOptions(path + ".scdb", "password", opts);var cfg = new DatabaseConfig
{
EnablePageCache = true,
PageCacheCapacity = 20000,
UseMemoryMapping = true,
UseGroupCommitWal = true,
WalMaxBatchDelayMs = 5,
WalDurabilityMode = DurabilityMode.FullSync
};
var db = (Database)factory.Create(dirPath, "password", false, cfg);