bench_btree_out.txt 4.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. TsDB2 Benchmark — 1,000,000 rows
  2. Database: bench_1788944065522337500.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 (20119 rows/s) 已耗时 4.97s
  11. 进度: 200,000 / 1,000,000 (19112 rows/s) 已耗时 10.465s
  12. 进度: 300,000 / 1,000,000 (18150 rows/s) 已耗时 16.529s
  13. 进度: 400,000 / 1,000,000 (17393 rows/s) 已耗时 22.997s
  14. 进度: 500,000 / 1,000,000 (16770 rows/s) 已耗时 29.816s
  15. 进度: 600,000 / 1,000,000 (16211 rows/s) 已耗时 37.011s
  16. 进度: 700,000 / 1,000,000 (15755 rows/s) 已耗时 44.43s
  17. 进度: 800,000 / 1,000,000 (15351 rows/s) 已耗时 52.113s
  18. 进度: 900,000 / 1,000,000 (15009 rows/s) 已耗时 59.964s
  19. 进度: 1,000,000 / 1,000,000 (14705 rows/s) 已耗时 1m8.006s
  20. 插入完成: 1,000,000 rows, 耗时 1m8.006s, 吞吐 14705 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.2815603s 78/s
  25. PK 范围查询 id>=N*0.5 AND id<=N*0.5+100 101 1.2924303s 78/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 543.9244ms 184/s first_id=1
  30. PK ORDER BY id DESC LIMIT 100 100 926.9714ms 108/s first_id=1000000
  31. PK COUNT(*) 1000000 390.3774ms 2561624/s
  32. PK SUM(age) 57500000 393.7822ms 146019805/s 57500000
  33. PK MAX(score) / MIN(score) 2 780.1889ms 3/s max=999 min=0
  34. 4. 二级索引查询 (B+ 树 idx_age)
  35. ======================================
  36. SEC 精确匹配 Eq(age=50) 507 10.1365ms 50017/s
  37. SEC 范围 age>=30 AND age<40 112905 11.2918684s 9999/s
  38. SEC 范围 age>=80 AND age<=97 212858 3.0492169s 69807/s
  39. SEC Gt(age>90) 87444 1.2152084s 71958/s
  40. SEC Le(age<=20) 0 0s N/A
  41. SEC ORDER BY age ASC LIMIT 50 50 1.4289446s 35/s first_age=18
  42. SEC ORDER BY age DESC LIMIT 50 50 1.7181401s 29/s first_age=97
  43. SEC COUNT(age>=50) 587622 8.1708099s 71917/s
  44. SEC SUM(score) WHERE age BETWEEN 25 AND 35 61751830 12.4931487s 4942856/s 61751830
  45. 5. 字符串索引查询 (idx_name)
  46. ===================================
  47. STR 精确匹配 Eq(name=last) 1 21.0164ms 48/s
  48. STR 范围 name>='U100' AND name<'U200' 0 13.1898748s 0/s
  49. 6. 全表扫描 + 复杂条件 (score 无索引)
  50. ================================================
  51. 全表: score>900 99000 149.8998ms 660441/s
  52. 全表: score>=500 AND score<=600 1000 136.7349ms 7313/s
  53. 全表: In(score, [1,2,3,999]) 4000 115.6455ms 34588/s
  54. 全表: Not(Eq(age, 50)) 987500 468.731ms 2106752/s
  55. 全表: Like(name, 'U100%') 0 131.3221ms 0/s
  56. 全表: Or(Eq(age,18), Eq(age,97)) 25000 122.8793ms 203452/s
  57. 7. 排序测试
  58. ===============
  59. ORDER BY age ASC (内存排序) 10000 115.2404ms 86775/s sorted=true
  60. ORDER BY age DESC (内存排序) 10000 116.8121ms 85608/s sorted=true
  61. ORDER BY score ASC, age DESC (多字段) 1000 112.3199ms 8903/s
  62. 8. 分组统计 (Scan 流式)
  63. =============================
  64. GROUP BY age → COUNT(*) (流式 Scan) 80 456.6395ms 175/s 80 groups
  65. GROUP BY age → AVG(score) (流式 Scan) 80 498.7133ms 160/s 80 groups
  66. 9. 批量更新 (改)
  67. =====================