|
|
@@ -39,21 +39,24 @@ const (
|
|
|
// - 推荐配置: 1000-5000页 (16-78MB)
|
|
|
// - 高性能场景: 10000+页 (156MB+)
|
|
|
DefaultBufferPoolCapacity = 1000
|
|
|
+)
|
|
|
|
|
|
+// =============================================================================
|
|
|
+// WAL 与自动提交配置
|
|
|
+// =============================================================================
|
|
|
+const (
|
|
|
// DefaultDirtyThreshold 脏页阈值 (页数)
|
|
|
- // 脏页超过此数量时自动触发 Commit 刷盘, 防止内存暴涨和数据丢失
|
|
|
- // 500 页 × 16KB = ~8MB (平衡安全性、性能和内存)
|
|
|
+ // BufferPool 中脏页数量超过此值时,自动触发 Commit 刷盘
|
|
|
+ // 注意: 这是 BufferPool 级别的计数,不是事务级别
|
|
|
+ // - 500 页 × 16KB = ~8MB (平衡安全性、性能和内存)
|
|
|
// - 断电/崩溃时最多丢失 8MB 数据 (约 10,000 行)
|
|
|
// - 性能接近最优 (比 2000 页仅慢 1.5%)
|
|
|
// - 内存占用合理 (比 2000 页减少 75%)
|
|
|
DefaultDirtyThreshold = 500
|
|
|
-)
|
|
|
|
|
|
-// =============================================================================
|
|
|
-// WAL 与自动提交配置
|
|
|
-// =============================================================================
|
|
|
-const (
|
|
|
// DefaultAutoCommitDelay 默认防抖自动提交延迟
|
|
|
- // 每次写操作重置计时器, 停止操作后该时间内无新操作则自动 Commit
|
|
|
+ // 每次写操作重置计时器,停止操作后该时间内无新操作则自动 Commit
|
|
|
+ // - 适用场景: 低频写入、交互式应用
|
|
|
+ // - 禁用方法: 设置为 0 可完全禁用防抖,仅靠脏页阈值触发
|
|
|
DefaultAutoCommitDelay = time.Second
|
|
|
)
|