_out.log 3.8 KB

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