============================================================ TsDB2 大数据压力测试 (50万行 Employee + 10万行 Order) 覆盖: 批量插入/多索引/事务/WAL/条件查询/排序/聚合/持久化 ============================================================ ================================================== 1. 打开数据库 ✅ OpenDB 配置: BufferPool=2000页(32MB), DirtyThreshold=500页 [初始状态] 磁盘: 0.0MB | Go堆=1.0MB Sys=6.3MB ================================================== 2. 建表 + 多索引 ✅ UseTable[Employee] ✅ 索引: pk_employee + idx_age + idx_dept + idx_score (标签自动创建) ✅ UseTable[Order] ✅ 索引: pk_order + idx_status + idx_userid (标签自动创建) ================================================== 3. 批量插入 Employee (50万行) [100000行] 耗时: 5.0s | 磁盘: 30.7MB | Go堆=5.6MB Sys=73.2MB [200000行] 耗时: 10.9s | 磁盘: 54.0MB | Go堆=11.5MB Sys=81.2MB [300000行] 耗时: 22.7s | 磁盘: 79.6MB | Go堆=13.8MB Sys=81.5MB [400000行] 耗时: 41.4s | 磁盘: 101.9MB | Go堆=12.5MB Sys=81.5MB [500000行] 耗时: 61.0s | 磁盘: 124.1MB | Go堆=13.4MB Sys=81.7MB ✅ 插入 500000 行耗时: 61.00s (8196 rows/s) ================================================== 4. Commit (WAL 持久化) ✅ DB.Commit() Commit 耗时: 0.071s | 磁盘: 124.1MB | Go堆=29.8MB Sys=81.7MB ================================================== 5. 批量插入 Order (10万行) ✅ 插入 100000 行 Order 耗时: 3.87s (25845 rows/s) ✅ Order Commit 磁盘: 132.1MB | Go堆=12.5MB Sys=81.7MB ================================================== 6. 主键精确查找 (性能) ✅ 6 次主键查找 耗时: 0.0000s (+Inf finds/s) ================================================== 7. 条件查询 (二级索引) ✅ WHERE Age=25: 10000 行, 耗时: 0.121s ✅ WHERE Dept='Engineering': 62500 行, 耗时: 0.508s ✅ WHERE Score>900: 49500 行, 耗时: 0.611s ✅ WHERE Age>=30 AND Age<=40: 110000 行, 耗时: 0.962s ================================================== 8. 排序 + 分页 ✅ ORDER BY Score DESC LIMIT 10, 耗时: 1.088s Top3: Score=999, 999, 999 ✅ ORDER BY Age ASC OFFSET 10000 LIMIT 100, 耗时: 0.898s ================================================== 9. 聚合查询 ✅ COUNT(*): 500000, 耗时: 0.289s ================================================== 10. 事务: 批量插入 + 提交 ✅ 事务插入 10000 行 + Commit, 耗时: 0.71s ✅ 验证: ID=500001 存在 (Name=Txn0500001) ================================================== 11. 事务: 回滚 事务内插入 5000 行 ✅ Transaction.Rollback() ================================================== 12. 更新 + 删除 (大批量) ✅ 更新 Score>950 → 9999: 25480 行, 耗时: 7.592s ✅ 删除 Dept='Legal' 前100行: 100 行, 耗时: 3.534s ✅ 验证 Delete(7) 成功 ✅ 更新+删除后 Commit ================================================== 13. 关闭 + 重开验证持久化 关闭前磁盘: 143.1MB ✅ DB.Close() ✅ 重新打开数据库 ✅ 重开后 COUNT: 509900 (期望 509900, 事务已持久化) ✅ 重开后 Find(951): Score=9999 (更新持久化) ✅ 重开后回滚数据不存在 重开后磁盘: 143.1MB | Go堆=1.3MB Sys=326.8MB ================================================== 14. 全量扫描验证 ✅ 全量扫描: 509900 行, 耗时: 0.69s (737905 rows/s) ================================================== 15. Order 表验证 ✅ Order COUNT: 100000 ✅ Order WHERE Status=0: 20000 行 ============================================================ 测试结果: 32 通过, 0 失败 数据量: Employee=500000 + Order=100000 磁盘大小: 143.1MB Go堆=9.1MB Sys=326.8MB 🎉 全部通过! ============================================================