bench_bp_out.txt 5.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. TsDB2 Benchmark — 1,000,000 rows
  2. Database: bench_1788935209008398300.db
  3. CPUs: 32
  4. 1. 建表 + 建索引
  5. =====================
  6. 创建表 1 0s N/A 4 fields
  7. 创建 3 个索引 (Primary + BTree + Str) 3 0s N/A
  8. 2. 批量插入 (增)
  9. =====================
  10. 进度: 100,000 / 1,000,000 (4202 rows/s) 已耗时 23.801s
  11. 进度: 200,000 / 1,000,000 (2043 rows/s) 已耗时 1m37.881s
  12. 进度: 300,000 / 1,000,000 (1221 rows/s) 已耗时 4m5.619s
  13. 进度: 400,000 / 1,000,000 (835 rows/s) 已耗时 7m58.807s
  14. 进度: 500,000 / 1,000,000 (628 rows/s) 已耗时 13m16.513s
  15. 进度: 600,000 / 1,000,000 (501 rows/s) 已耗时 19m58.591s
  16. 进度: 700,000 / 1,000,000 (413 rows/s) 已耗时 28m13.689s
  17. 进度: 800,000 / 1,000,000 (354 rows/s) 已耗时 37m43.075s
  18. 进度: 900,000 / 1,000,000 (311 rows/s) 已耗时 48m15.632s
  19. 进度: 1,000,000 / 1,000,000 (278 rows/s) 已耗时 59m59.622s
  20. 插入完成: 1,000,000 rows, 耗时 59m59.624s, 吞吐 278 rows/s
  21. 3. 一级索引查询 (主键 B+ 树)
  22. =====================================
  23. PK 精确匹配 Eq(id=N/2) 1 0s N/A id=500000
  24. PK 范围查询 id>=N*0.5 AND id<N*0.5+100 100 1.2593148s 79/s
  25. PK 范围查询 id>=N*0.5 AND id<=N*0.5+100 101 1.245541s 81/s
  26. PK Gt(id>N-10) 10 0s N/A
  27. PK Le(id<=10) 10 0s N/A
  28. PK FindOne(id=N/3) 1 0s N/A age=70
  29. PK ORDER BY id ASC LIMIT 100 100 595.555ms 168/s first_id=1
  30. PK ORDER BY id DESC LIMIT 100 100 898.6292ms 111/s first_id=1000000
  31. PK COUNT(*) 1000000 413.1068ms 2420682/s
  32. PK SUM(age) 57500000 420.8477ms 136628999/s 57500000
  33. PK MAX(score) / MIN(score) 2 836.8881ms 2/s max=999 min=0
  34. 4. 二级索引查询 (B+ 树 idx_age)
  35. ======================================
  36. SEC 精确匹配 Eq(age=50) 507 6.5165ms 77803/s
  37. SEC 范围 age>=30 AND age<40 112905 11.1546952s 10122/s
  38. SEC 范围 age>=80 AND age<=97 212858 2.9562521s 72003/s
  39. SEC Gt(age>90) 87444 1.1875674s 73633/s
  40. SEC Le(age<=20) 0 0s N/A
  41. SEC ORDER BY age ASC LIMIT 50 50 1.4113906s 35/s first_age=18
  42. SEC ORDER BY age DESC LIMIT 50 50 1.7109667s 29/s first_age=97
  43. SEC COUNT(age>=50) 587622 7.829882s 75049/s
  44. SEC SUM(score) WHERE age BETWEEN 25 AND 35 61751830 11.5502347s 5346370/s 61751830
  45. 5. 字符串索引查询 (idx_name)
  46. ===================================
  47. STR 精确匹配 Eq(name=last) 1 19.2156ms 52/s
  48. STR 范围 name>='U100' AND name<'U200' 0 12.3981025s 0/s
  49. 6. 全表扫描 + 复杂条件 (score 无索引)
  50. ================================================
  51. 全表: score>900 99000 138.4192ms 715219/s
  52. 全表: score>=500 AND score<=600 1000 128.7636ms 7766/s
  53. 全表: In(score, [1,2,3,999]) 4000 112.6613ms 35505/s
  54. 全表: Not(Eq(age, 50)) 987500 428.7316ms 2303306/s
  55. 全表: Like(name, 'U100%') 0 128.8279ms 0/s
  56. 全表: Or(Eq(age,18), Eq(age,97)) 25000 129.106ms 193639/s
  57. 7. 排序测试
  58. ===============
  59. ORDER BY age ASC (内存排序) 10000 115.78ms 86371/s sorted=true
  60. ORDER BY age DESC (内存排序) 10000 114.4521ms 87373/s sorted=true
  61. ORDER BY score ASC, age DESC (多字段) 1000 108.8625ms 9186/s
  62. 8. 分组统计 (Scan 流式)
  63. =============================
  64. GROUP BY age → COUNT(*) (流式 Scan) 80 426.1933ms 188/s 80 groups
  65. GROUP BY age → AVG(score) (流式 Scan) 80 455.6148ms 176/s 80 groups
  66. 9. 批量更新 (改)
  67. =====================
  68. UPDATE score=0 WHERE id>=1 AND id<=N/10 100000 6.7244665s 14871/s
  69. 验证: score=0 的行数 100900 143.0115ms 705538/s
  70. UPDATE age=99 WHERE age=18 (二级索引条件) 746 43.7248ms 17061/s
  71. 10. 批量删除 (删)
  72. ======================