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