|
|
@@ -2,7 +2,7 @@
|
|
|
========================================================================================================
|
|
|
P0 环境与参数
|
|
|
========================================================================================================
|
|
|
- 时间 : 2026-09-15 09:46:02
|
|
|
+ 时间 : 2026-09-15 19:34:15
|
|
|
Go : go1.24.5 | CPU 8 核 (GOMAXPROCS=8) | darwin/amd64
|
|
|
规模 : 主表 10000000 行 | 订单 1000000 行 | 部门 100 行 | 单行更新 2000 次 | 逐行删除 100000 行
|
|
|
参数 : Age=20+No%50 | Score=No%1000 | Dept=Dept(No%100) | Salary=No%100000
|
|
|
@@ -10,14 +10,14 @@ P0 环境与参数
|
|
|
提交策略 : preset=batch(脏页阈值 500 页), 自动提交防抖禁用, 每 100 万行显式 Commit
|
|
|
主库 : /Users/yl32940/Projects/TsDB2/demo/bench_10m/bench_10m.db
|
|
|
探针库 : /Users/yl32940/Projects/TsDB2/demo/bench_10m/bench_10m_probe.db
|
|
|
- GoAlloc=0MB Sys=6MB HeapInuse=0MB NumGC=0
|
|
|
+ GoAlloc=0MB Sys=6MB HeapInuse=1MB NumGC=0
|
|
|
|
|
|
清理同前缀旧库文件...
|
|
|
|
|
|
========================================================================================================
|
|
|
P1 建表 / 打开表 + 索引
|
|
|
========================================================================================================
|
|
|
- UseTable × 3 (含建表/建索引) 行数=3 耗时=1ms 5.91k/s
|
|
|
+ UseTable × 3 (含建表/建索引) 行数=3 耗时=1ms 5.24k/s
|
|
|
emp 活跃列 : [_id No Name Age Score Dept Salary Active]
|
|
|
emp 字段数 : 总 8 / 活跃 8 | TotalRows=0
|
|
|
索引 pk_emp type=2 分量=1 fieldIDs=[0]
|
|
|
@@ -28,117 +28,117 @@ P1 建表 / 打开表 + 索引
|
|
|
========================================================================================================
|
|
|
P2 千万级写入: 单行 Insert × 10000000 (含进度 / 分档 Commit)
|
|
|
========================================================================================================
|
|
|
- [ 200000 行] 累计 8.1s | 瞬时 24.72k/s | 磁盘 44.6MB | ETA 6m37s | GoAlloc=26MB Sys=73MB HeapInuse=26MB NumGC=1124
|
|
|
- [ 400000 行] 累计 16.4s | 瞬时 24.00k/s | 磁盘 87.6MB | ETA 6m40s | GoAlloc=24MB Sys=77MB HeapInuse=25MB NumGC=1791
|
|
|
- [ 600000 行] 累计 25.1s | 瞬时 23.15k/s | 磁盘 130.3MB | ETA 6m46s | GoAlloc=28MB Sys=77MB HeapInuse=29MB NumGC=2461
|
|
|
- [ 800000 行] 累计 34.4s | 瞬时 21.37k/s | 磁盘 172.8MB | ETA 7m11s | GoAlloc=27MB Sys=77MB HeapInuse=27MB NumGC=3133
|
|
|
- [ 1000000 行] 累计 43.8s | 瞬时 21.24k/s | 磁盘 214.8MB | ETA 7m4s | GoAlloc=20MB Sys=77MB HeapInuse=21MB NumGC=3803
|
|
|
+ [ 200000 行] 累计 9.0s | 瞬时 22.27k/s | 磁盘 44.7MB | ETA 7m20s | GoAlloc=20MB Sys=72MB HeapInuse=21MB NumGC=1124
|
|
|
+ [ 400000 行] 累计 17.4s | 瞬时 23.62k/s | 磁盘 87.7MB | ETA 6m46s | GoAlloc=29MB Sys=72MB HeapInuse=30MB NumGC=1794
|
|
|
+ [ 600000 行] 累计 27.1s | 瞬时 20.70k/s | 磁盘 130.2MB | ETA 7m34s | GoAlloc=27MB Sys=72MB HeapInuse=28MB NumGC=2470
|
|
|
+ [ 800000 行] 累计 37.4s | 瞬时 19.44k/s | 磁盘 172.8MB | ETA 7m53s | GoAlloc=26MB Sys=72MB HeapInuse=27MB NumGC=3141
|
|
|
+ [ 1000000 行] 累计 47.2s | 瞬时 20.47k/s | 磁盘 214.8MB | ETA 7m20s | GoAlloc=28MB Sys=72MB HeapInuse=29MB NumGC=3811
|
|
|
[ 1000000 行] 显式 Commit 30ms | 磁盘 214.8MB
|
|
|
- [ 1200000 行] 累计 53.4s | 瞬时 20.90k/s | 磁盘 253.2MB | ETA 7m1s | GoAlloc=29MB Sys=77MB HeapInuse=30MB NumGC=4468
|
|
|
- [ 1400000 行] 累计 63.0s | 瞬时 20.87k/s | 磁盘 295.0MB | ETA 6m52s | GoAlloc=31MB Sys=77MB HeapInuse=31MB NumGC=5136
|
|
|
- [ 1600000 行] 累计 73.5s | 瞬时 19.09k/s | 磁盘 336.8MB | ETA 7m20s | GoAlloc=29MB Sys=77MB HeapInuse=29MB NumGC=5813
|
|
|
- [ 1800000 行] 累计 84.0s | 瞬时 19.06k/s | 磁盘 377.4MB | ETA 7m10s | GoAlloc=21MB Sys=77MB HeapInuse=21MB NumGC=6684
|
|
|
- [ 2000000 行] 累计 95.2s | 瞬时 17.74k/s | 磁盘 421.7MB | ETA 7m31s | GoAlloc=28MB Sys=77MB HeapInuse=29MB NumGC=7557
|
|
|
- [ 2000000 行] 显式 Commit 38ms | 磁盘 421.7MB
|
|
|
- [ 2200000 行] 累计 106.6s | 瞬时 17.64k/s | 磁盘 463.1MB | ETA 7m22s | GoAlloc=22MB Sys=77MB HeapInuse=23MB NumGC=8429
|
|
|
- [ 2400000 行] 累计 118.2s | 瞬时 17.27k/s | 磁盘 503.6MB | ETA 7m20s | GoAlloc=23MB Sys=77MB HeapInuse=23MB NumGC=9303
|
|
|
- [ 2600000 行] 累计 129.5s | 瞬时 17.64k/s | 磁盘 547.4MB | ETA 7m0s | GoAlloc=31MB Sys=77MB HeapInuse=32MB NumGC=10175
|
|
|
- [ 2800000 行] 累计 140.8s | 瞬时 17.68k/s | 磁盘 588.1MB | ETA 6m47s | GoAlloc=18MB Sys=77MB HeapInuse=19MB NumGC=11048
|
|
|
- [ 3000000 行] 累计 152.1s | 瞬时 17.70k/s | 磁盘 628.5MB | ETA 6m36s | GoAlloc=20MB Sys=77MB HeapInuse=21MB NumGC=11919
|
|
|
- [ 3000000 行] 显式 Commit 38ms | 磁盘 628.5MB
|
|
|
- [ 3200000 行] 累计 163.3s | 瞬时 17.85k/s | 磁盘 670.1MB | ETA 6m21s | GoAlloc=30MB Sys=77MB HeapInuse=31MB NumGC=12792
|
|
|
- [ 3400000 行] 累计 174.4s | 瞬时 18.09k/s | 磁盘 713.0MB | ETA 6m5s | GoAlloc=31MB Sys=77MB HeapInuse=31MB NumGC=13667
|
|
|
- [ 3600000 行] 累计 185.7s | 瞬时 17.59k/s | 磁盘 754.3MB | ETA 6m4s | GoAlloc=17MB Sys=77MB HeapInuse=18MB NumGC=14543
|
|
|
- [ 3800000 行] 累计 197.1s | 瞬时 17.65k/s | 磁盘 795.6MB | ETA 5m51s | GoAlloc=26MB Sys=77MB HeapInuse=26MB NumGC=15418
|
|
|
- [ 4000000 行] 累计 208.5s | 瞬时 17.46k/s | 磁盘 837.6MB | ETA 5m44s | GoAlloc=18MB Sys=77MB HeapInuse=18MB NumGC=16292
|
|
|
- [ 4000000 行] 显式 Commit 40ms | 磁盘 837.6MB
|
|
|
- [ 4200000 行] 累计 220.0s | 瞬时 17.36k/s | 磁盘 880.4MB | ETA 5m34s | GoAlloc=53MB Sys=77MB HeapInuse=54MB NumGC=17166
|
|
|
- [ 4400000 行] 累计 231.6s | 瞬时 17.30k/s | 磁盘 919.0MB | ETA 5m24s | GoAlloc=25MB Sys=77MB HeapInuse=25MB NumGC=18038
|
|
|
- [ 4600000 行] 累计 243.1s | 瞬时 17.43k/s | 磁盘 961.0MB | ETA 5m10s | GoAlloc=32MB Sys=77MB HeapInuse=32MB NumGC=18913
|
|
|
- [ 4800000 行] 累计 254.4s | 瞬时 17.61k/s | 磁盘 1002.0MB | ETA 4m55s | GoAlloc=30MB Sys=77MB HeapInuse=31MB NumGC=19788
|
|
|
- [ 5000000 行] 累计 265.8s | 瞬时 17.56k/s | 磁盘 1043.5MB | ETA 4m45s | GoAlloc=22MB Sys=77MB HeapInuse=23MB NumGC=20662
|
|
|
- [ 5000000 行] 显式 Commit 47ms | 磁盘 1044.0MB
|
|
|
- [ 5200000 行] 累计 277.3s | 瞬时 17.45k/s | 磁盘 1087.1MB | ETA 4m35s | GoAlloc=17MB Sys=77MB HeapInuse=18MB NumGC=21538
|
|
|
- [ 5400000 行] 累计 288.8s | 瞬时 17.38k/s | 磁盘 1128.6MB | ETA 4m25s | GoAlloc=20MB Sys=77MB HeapInuse=21MB NumGC=22412
|
|
|
- [ 5600000 行] 累计 300.3s | 瞬时 17.37k/s | 磁盘 1170.5MB | ETA 4m13s | GoAlloc=16MB Sys=77MB HeapInuse=17MB NumGC=23289
|
|
|
- [ 5800000 行] 累计 311.7s | 瞬时 17.55k/s | 磁盘 1212.1MB | ETA 3m59s | GoAlloc=23MB Sys=77MB HeapInuse=23MB NumGC=24161
|
|
|
- [ 6000000 行] 累计 323.1s | 瞬时 17.62k/s | 磁盘 1253.1MB | ETA 3m47s | GoAlloc=18MB Sys=77MB HeapInuse=19MB NumGC=25034
|
|
|
- [ 6000000 行] 显式 Commit 30ms | 磁盘 1253.1MB
|
|
|
- [ 6200000 行] 累计 334.6s | 瞬时 17.37k/s | 磁盘 1294.7MB | ETA 3m39s | GoAlloc=30MB Sys=77MB HeapInuse=30MB NumGC=25908
|
|
|
- [ 6400000 行] 累计 345.8s | 瞬时 17.85k/s | 磁盘 1335.8MB | ETA 3m22s | GoAlloc=21MB Sys=77MB HeapInuse=22MB NumGC=26782
|
|
|
- [ 6600000 行] 累计 357.0s | 瞬时 17.84k/s | 磁盘 1376.5MB | ETA 3m11s | GoAlloc=21MB Sys=77MB HeapInuse=22MB NumGC=27656
|
|
|
- [ 6800000 行] 累计 368.9s | 瞬时 16.87k/s | 磁盘 1420.0MB | ETA 3m10s | GoAlloc=25MB Sys=77MB HeapInuse=26MB NumGC=28531
|
|
|
- [ 7000000 行] 累计 380.8s | 瞬时 16.72k/s | 磁盘 1460.3MB | ETA 2m59s | GoAlloc=23MB Sys=77MB HeapInuse=23MB NumGC=29406
|
|
|
- [ 7000000 行] 显式 Commit 56ms | 磁盘 1461.9MB
|
|
|
- [ 7200000 行] 累计 392.4s | 瞬时 17.35k/s | 磁盘 1502.2MB | ETA 2m41s | GoAlloc=20MB Sys=77MB HeapInuse=21MB NumGC=30280
|
|
|
- [ 7400000 行] 累计 403.9s | 瞬时 17.38k/s | 磁盘 1544.7MB | ETA 2m30s | GoAlloc=23MB Sys=77MB HeapInuse=24MB NumGC=31155
|
|
|
- [ 7600000 行] 累计 415.7s | 瞬时 16.93k/s | 磁盘 1583.6MB | ETA 2m22s | GoAlloc=19MB Sys=77MB HeapInuse=20MB NumGC=32030
|
|
|
- [ 7800000 行] 累计 427.8s | 瞬时 16.49k/s | 磁盘 1626.1MB | ETA 2m13s | GoAlloc=30MB Sys=77MB HeapInuse=30MB NumGC=32905
|
|
|
- [ 8000000 行] 累计 439.2s | 瞬时 17.57k/s | 磁盘 1668.6MB | ETA 1m54s | GoAlloc=28MB Sys=77MB HeapInuse=29MB NumGC=33780
|
|
|
+ [ 1200000 行] 累计 57.3s | 瞬时 19.80k/s | 磁盘 253.2MB | ETA 7m24s | GoAlloc=25MB Sys=72MB HeapInuse=25MB NumGC=4479
|
|
|
+ [ 1400000 行] 累计 67.4s | 瞬时 19.66k/s | 磁盘 295.0MB | ETA 7m17s | GoAlloc=24MB Sys=72MB HeapInuse=25MB NumGC=5147
|
|
|
+ [ 1600000 行] 累计 77.6s | 瞬时 19.64k/s | 磁盘 336.8MB | ETA 7m8s | GoAlloc=23MB Sys=72MB HeapInuse=23MB NumGC=5825
|
|
|
+ [ 1800000 行] 累计 88.8s | 瞬时 17.83k/s | 磁盘 377.4MB | ETA 7m40s | GoAlloc=28MB Sys=72MB HeapInuse=28MB NumGC=6696
|
|
|
+ [ 2000000 行] 累计 100.5s | 瞬时 17.10k/s | 磁盘 421.7MB | ETA 7m48s | GoAlloc=25MB Sys=72MB HeapInuse=26MB NumGC=7567
|
|
|
+ [ 2000000 行] 显式 Commit 36ms | 磁盘 421.7MB
|
|
|
+ [ 2200000 行] 累计 112.4s | 瞬时 16.88k/s | 磁盘 463.1MB | ETA 7m42s | GoAlloc=18MB Sys=73MB HeapInuse=19MB NumGC=8441
|
|
|
+ [ 2400000 行] 累计 124.1s | 瞬时 17.09k/s | 磁盘 503.6MB | ETA 7m25s | GoAlloc=28MB Sys=73MB HeapInuse=28MB NumGC=9312
|
|
|
+ [ 2600000 行] 累计 135.7s | 瞬时 17.22k/s | 磁盘 547.4MB | ETA 7m10s | GoAlloc=22MB Sys=73MB HeapInuse=23MB NumGC=10185
|
|
|
+ [ 2800000 行] 累计 147.4s | 瞬时 17.14k/s | 磁盘 588.1MB | ETA 7m0s | GoAlloc=19MB Sys=73MB HeapInuse=20MB NumGC=11055
|
|
|
+ [ 3000000 行] 累计 159.1s | 瞬时 17.09k/s | 磁盘 628.5MB | ETA 6m50s | GoAlloc=29MB Sys=73MB HeapInuse=30MB NumGC=11926
|
|
|
+ [ 3000000 行] 显式 Commit 41ms | 磁盘 628.5MB
|
|
|
+ [ 3200000 行] 累计 170.6s | 瞬时 17.34k/s | 磁盘 670.1MB | ETA 6m32s | GoAlloc=19MB Sys=73MB HeapInuse=20MB NumGC=12800
|
|
|
+ [ 3400000 行] 累计 182.1s | 瞬时 17.34k/s | 磁盘 712.9MB | ETA 6m21s | GoAlloc=31MB Sys=73MB HeapInuse=31MB NumGC=13673
|
|
|
+ [ 3600000 行] 累计 194.0s | 瞬时 16.91k/s | 磁盘 754.3MB | ETA 6m18s | GoAlloc=23MB Sys=73MB HeapInuse=24MB NumGC=14548
|
|
|
+ [ 3800000 行] 累计 205.5s | 瞬时 17.31k/s | 磁盘 795.6MB | ETA 5m58s | GoAlloc=19MB Sys=73MB HeapInuse=20MB NumGC=15422
|
|
|
+ [ 4000000 行] 累计 217.1s | 瞬时 17.35k/s | 磁盘 837.6MB | ETA 5m46s | GoAlloc=26MB Sys=73MB HeapInuse=26MB NumGC=16296
|
|
|
+ [ 4000000 行] 显式 Commit 41ms | 磁盘 837.6MB
|
|
|
+ [ 4200000 行] 累计 229.0s | 瞬时 16.73k/s | 磁盘 880.4MB | ETA 5m47s | GoAlloc=19MB Sys=73MB HeapInuse=20MB NumGC=17170
|
|
|
+ [ 4400000 行] 累计 240.5s | 瞬时 17.34k/s | 磁盘 919.0MB | ETA 5m23s | GoAlloc=25MB Sys=73MB HeapInuse=26MB NumGC=18043
|
|
|
+ [ 4600000 行] 累计 252.4s | 瞬时 16.83k/s | 磁盘 960.9MB | ETA 5m21s | GoAlloc=31MB Sys=73MB HeapInuse=32MB NumGC=18917
|
|
|
+ [ 4800000 行] 累计 264.2s | 瞬时 16.91k/s | 磁盘 1002.0MB | ETA 5m7s | GoAlloc=26MB Sys=73MB HeapInuse=27MB NumGC=19793
|
|
|
+ [ 5000000 行] 累计 275.8s | 瞬时 17.24k/s | 磁盘 1043.5MB | ETA 4m50s | GoAlloc=31MB Sys=73MB HeapInuse=31MB NumGC=20668
|
|
|
+ [ 5000000 行] 显式 Commit 46ms | 磁盘 1044.0MB
|
|
|
+ [ 5200000 行] 累计 287.7s | 瞬时 16.88k/s | 磁盘 1087.2MB | ETA 4m44s | GoAlloc=24MB Sys=73MB HeapInuse=24MB NumGC=21542
|
|
|
+ [ 5400000 行] 累计 299.6s | 瞬时 16.85k/s | 磁盘 1128.6MB | ETA 4m33s | GoAlloc=26MB Sys=73MB HeapInuse=27MB NumGC=22417
|
|
|
+ [ 5600000 行] 累计 311.4s | 瞬时 16.83k/s | 磁盘 1170.5MB | ETA 4m21s | GoAlloc=22MB Sys=81MB HeapInuse=23MB NumGC=23289
|
|
|
+ [ 5800000 行] 累计 325.6s | 瞬时 14.16k/s | 磁盘 1212.1MB | ETA 4m57s | GoAlloc=20MB Sys=81MB HeapInuse=21MB NumGC=24163
|
|
|
+ [ 6000000 行] 累计 339.9s | 瞬时 13.92k/s | 磁盘 1253.1MB | ETA 4m47s | GoAlloc=28MB Sys=81MB HeapInuse=28MB NumGC=25036
|
|
|
+ [ 6000000 行] 显式 Commit 37ms | 磁盘 1253.1MB
|
|
|
+ [ 6200000 行] 累计 353.5s | 瞬时 14.79k/s | 磁盘 1294.7MB | ETA 4m17s | GoAlloc=31MB Sys=81MB HeapInuse=32MB NumGC=25911
|
|
|
+ [ 6400000 行] 累计 367.6s | 瞬时 14.18k/s | 磁盘 1335.8MB | ETA 4m14s | GoAlloc=30MB Sys=81MB HeapInuse=31MB NumGC=26785
|
|
|
+ [ 6600000 行] 累计 381.0s | 瞬时 14.92k/s | 磁盘 1376.5MB | ETA 3m48s | GoAlloc=25MB Sys=81MB HeapInuse=26MB NumGC=27658
|
|
|
+ [ 6800000 行] 累计 394.5s | 瞬时 14.82k/s | 磁盘 1420.0MB | ETA 3m36s | GoAlloc=31MB Sys=81MB HeapInuse=31MB NumGC=28534
|
|
|
+ [ 7000000 行] 累计 408.0s | 瞬时 14.79k/s | 磁盘 1460.3MB | ETA 3m23s | GoAlloc=27MB Sys=81MB HeapInuse=28MB NumGC=29408
|
|
|
+ [ 7000000 行] 显式 Commit 55ms | 磁盘 1461.9MB
|
|
|
+ [ 7200000 行] 累计 421.7s | 瞬时 14.54k/s | 磁盘 1502.2MB | ETA 3m13s | GoAlloc=25MB Sys=81MB HeapInuse=25MB NumGC=30284
|
|
|
+ [ 7400000 行] 累计 439.5s | 瞬时 11.29k/s | 磁盘 1544.7MB | ETA 3m50s | GoAlloc=27MB Sys=81MB HeapInuse=27MB NumGC=31159
|
|
|
+ [ 7600000 行] 累计 453.7s | 瞬时 14.06k/s | 磁盘 1583.6MB | ETA 2m51s | GoAlloc=17MB Sys=81MB HeapInuse=18MB NumGC=32034
|
|
|
+ [ 7800000 行] 累计 467.5s | 瞬时 14.45k/s | 磁盘 1626.1MB | ETA 2m32s | GoAlloc=18MB Sys=81MB HeapInuse=19MB NumGC=32909
|
|
|
+ [ 8000000 行] 累计 481.5s | 瞬时 14.33k/s | 磁盘 1668.6MB | ETA 2m20s | GoAlloc=24MB Sys=81MB HeapInuse=24MB NumGC=33783
|
|
|
[ 8000000 行] 显式 Commit 37ms | 磁盘 1668.6MB
|
|
|
- [ 8200000 行] 累计 450.9s | 瞬时 17.02k/s | 磁盘 1709.3MB | ETA 1m46s | GoAlloc=17MB Sys=77MB HeapInuse=18MB NumGC=34656
|
|
|
- [ 8400000 行] 累计 462.6s | 瞬时 17.10k/s | 磁盘 1751.8MB | ETA 1m34s | GoAlloc=17MB Sys=77MB HeapInuse=17MB NumGC=35532
|
|
|
- [ 8600000 行] 累计 474.3s | 瞬时 17.09k/s | 磁盘 1794.3MB | ETA 1m22s | GoAlloc=23MB Sys=77MB HeapInuse=23MB NumGC=36407
|
|
|
- [ 8800000 行] 累计 485.9s | 瞬时 17.28k/s | 磁盘 1833.5MB | ETA 1m9s | GoAlloc=23MB Sys=77MB HeapInuse=23MB NumGC=37284
|
|
|
- [ 9000000 行] 累计 497.6s | 瞬时 17.16k/s | 磁盘 1876.0MB | ETA 58s | GoAlloc=17MB Sys=77MB HeapInuse=17MB NumGC=38160
|
|
|
- [ 9000000 行] 显式 Commit 45ms | 磁盘 1876.0MB
|
|
|
- [ 9200000 行] 累计 509.2s | 瞬时 17.12k/s | 磁盘 1917.1MB | ETA 47s | GoAlloc=28MB Sys=77MB HeapInuse=28MB NumGC=39036
|
|
|
- [ 9400000 行] 累计 521.0s | 瞬时 17.03k/s | 磁盘 1959.5MB | ETA 35s | GoAlloc=18MB Sys=77MB HeapInuse=19MB NumGC=39914
|
|
|
- [ 9600000 行] 累计 532.6s | 瞬时 17.21k/s | 磁盘 2002.0MB | ETA 23s | GoAlloc=18MB Sys=77MB HeapInuse=19MB NumGC=40787
|
|
|
- [ 9800000 行] 累计 544.2s | 瞬时 17.26k/s | 磁盘 2041.4MB | ETA 12s | GoAlloc=24MB Sys=77MB HeapInuse=24MB NumGC=41660
|
|
|
- [ 10000000 行] 累计 555.7s | 瞬时 17.43k/s | 磁盘 2083.9MB | ETA 0s | GoAlloc=28MB Sys=77MB HeapInuse=29MB NumGC=42536
|
|
|
- [ 10000000 行] 显式 Commit 53ms | 磁盘 2085.1MB
|
|
|
- 单行 Insert × 10000000 + 分档 Commit 行数=10000000 耗时=9m15.718s 17.99k/s
|
|
|
- 最终 Commit 0s | 磁盘 2085.1MB | 文件 2.04GB | GoAlloc=38MB Sys=77MB HeapInuse=38MB NumGC=42538
|
|
|
- 全表扫描 写入后全量校验(插入态) 行数=10000000 耗时=23.994s 416.77k/s
|
|
|
+ [ 8200000 行] 累计 495.6s | 瞬时 14.18k/s | 磁盘 1709.3MB | ETA 2m7s | GoAlloc=27MB Sys=81MB HeapInuse=27MB NumGC=34657
|
|
|
+ [ 8400000 行] 累计 510.3s | 瞬时 13.59k/s | 磁盘 1751.8MB | ETA 1m58s | GoAlloc=19MB Sys=81MB HeapInuse=20MB NumGC=35535
|
|
|
+ [ 8600000 行] 累计 525.5s | 瞬时 13.18k/s | 磁盘 1794.3MB | ETA 1m46s | GoAlloc=27MB Sys=81MB HeapInuse=27MB NumGC=36408
|
|
|
+ [ 8800000 行] 累计 539.9s | 瞬时 13.90k/s | 磁盘 1833.5MB | ETA 1m26s | GoAlloc=27MB Sys=81MB HeapInuse=28MB NumGC=37281
|
|
|
+ [ 9000000 行] 累计 553.9s | 瞬时 14.23k/s | 磁盘 1876.0MB | ETA 1m10s | GoAlloc=19MB Sys=81MB HeapInuse=19MB NumGC=38156
|
|
|
+ [ 9000000 行] 显式 Commit 61ms | 磁盘 1876.0MB
|
|
|
+ [ 9200000 行] 累计 568.2s | 瞬时 13.98k/s | 磁盘 1917.1MB | ETA 57s | GoAlloc=28MB Sys=81MB HeapInuse=28MB NumGC=39032
|
|
|
+ [ 9400000 行] 累计 581.8s | 瞬时 14.75k/s | 磁盘 1959.5MB | ETA 41s | GoAlloc=26MB Sys=81MB HeapInuse=27MB NumGC=39907
|
|
|
+ [ 9600000 行] 累计 595.8s | 瞬时 14.31k/s | 磁盘 2002.0MB | ETA 28s | GoAlloc=23MB Sys=81MB HeapInuse=23MB NumGC=40781
|
|
|
+ [ 9800000 行] 累计 610.0s | 瞬时 14.01k/s | 磁盘 2041.4MB | ETA 14s | GoAlloc=18MB Sys=81MB HeapInuse=19MB NumGC=41654
|
|
|
+ [ 10000000 行] 累计 624.7s | 瞬时 13.66k/s | 磁盘 2083.9MB | ETA 0s | GoAlloc=20MB Sys=81MB HeapInuse=20MB NumGC=42530
|
|
|
+ [ 10000000 行] 显式 Commit 56ms | 磁盘 2085.1MB
|
|
|
+ 单行 Insert × 10000000 + 分档 Commit 行数=10000000 耗时=10m24.726s 16.01k/s
|
|
|
+ 最终 Commit 0s | 磁盘 2085.1MB | 文件 2.04GB | GoAlloc=47MB Sys=81MB HeapInuse=48MB NumGC=42531
|
|
|
+ 全表扫描 写入后全量校验(插入态) 行数=10000000 耗时=28.129s 355.50k/s
|
|
|
|
|
|
========================================================================================================
|
|
|
P3 查询性能 (主键点查 / 二级索引等值 / 范围 / 分页 / 排序 / 投影 / 聚合)
|
|
|
========================================================================================================
|
|
|
- 主键点查 Find(pkID) × 20000 行数=20000 耗时=576ms 34.73k/s
|
|
|
- 二级索引等值 Where(No=..) × 20000 行数=20000 耗时=1.417s 14.12k/s
|
|
|
- 索引等值 Count(Age=..) × 20 (每次 200000 行) 行数=4000000 耗时=230ms 17.39M/s
|
|
|
- 索引范围 Count(Age 30..34, 1000000 行) 行数=1000000 耗时=39ms 25.45M/s
|
|
|
- 字符串索引 Count(Dept=Dept007, 100000 行) 行数=100000 耗时=9ms 10.92M/s
|
|
|
- 无索引条件 Count(Score=123, 10000 行) 全表扫描 行数=10000000 耗时=5.401s 1.85M/s
|
|
|
- Limit(10).Offset(500) 行数=10 耗时=21ms 482/s
|
|
|
- OrderBy(索引列 Age) + Limit(10) 流式取前 N 行数=10 耗时=54ms 184/s
|
|
|
- OrderBy(非索引列 Score) 100000 行参与内存排序 行数=100000 耗时=2.824s 35.41k/s
|
|
|
+ 主键点查 Find(pkID) × 20000 行数=20000 耗时=609ms 32.83k/s
|
|
|
+ 二级索引等值 Where(No=..) × 20000 行数=20000 耗时=1.782s 11.22k/s
|
|
|
+ 索引等值 Count(Age=..) × 20 (每次 200000 行) 行数=4000000 耗时=281ms 14.23M/s
|
|
|
+ 索引范围 Count(Age 30..34, 1000000 行) 行数=1000000 耗时=142ms 7.02M/s
|
|
|
+ 字符串索引 Count(Dept=Dept007, 100000 行) 行数=100000 耗时=10ms 9.56M/s
|
|
|
+ 无索引条件 Count(Score=123, 10000 行) 全表扫描 行数=10000000 耗时=7.39s 1.35M/s
|
|
|
+ Limit(10).Offset(500) 行数=10 耗时=23ms 433/s
|
|
|
+ OrderBy(索引列 Age) + Limit(10) 流式取前 N 行数=10 耗时=65ms 153/s
|
|
|
+ OrderBy(非索引列 Score) 100000 行参与内存排序 行数=100000 耗时=3.451s 28.98k/s
|
|
|
Select(No,Age) 首行返回: No=1 Age=21
|
|
|
- Sum(Salary) 全表 行数=10000000 耗时=3.147s 3.18M/s
|
|
|
- Max(No) 行数=10000000 耗时=0s 234967.93M/s
|
|
|
+ Sum(Salary) 全表 行数=10000000 耗时=4.053s 2.47M/s
|
|
|
+ Max(No) 行数=10000000 耗时=0s 156673.51M/s
|
|
|
|
|
|
========================================================================================================
|
|
|
P4 多表: 部门维度表 + 订单表 + 索引关联计数校验
|
|
|
========================================================================================================
|
|
|
- 维度表 dept_dim 写入 100 行 行数=100 耗时=19ms 5.39k/s
|
|
|
- [订单 200000 行] 累计 5.7s | 35.15k/s | 磁盘 2109.3MB
|
|
|
- [订单 400000 行] 累计 11.9s | 33.47k/s | 磁盘 2134.2MB
|
|
|
- [订单 600000 行] 累计 18.5s | 32.46k/s | 磁盘 2159.2MB
|
|
|
- [订单 800000 行] 累计 25.5s | 31.38k/s | 磁盘 2186.3MB
|
|
|
- [订单 1000000 行] 累计 32.9s | 30.40k/s | 磁盘 2214.5MB
|
|
|
- 订单表 orders 写入 1000000 行 行数=1000000 耗时=32.943s 30.36k/s
|
|
|
- 关联计数: 订单表按 EmpNo 索引 × 20 行数=20 耗时=1ms 27.69k/s
|
|
|
- 关联计数: 员工表按 Dept 索引 × 100 (每次 100000 行) 行数=10000000 耗时=877ms 11.40M/s
|
|
|
+ 维度表 dept_dim 写入 100 行 行数=100 耗时=18ms 5.61k/s
|
|
|
+ [订单 200000 行] 累计 6.3s | 31.76k/s | 磁盘 2109.3MB
|
|
|
+ [订单 400000 行] 累计 14.1s | 28.43k/s | 磁盘 2134.2MB
|
|
|
+ [订单 600000 行] 累计 20.5s | 29.26k/s | 磁盘 2159.2MB
|
|
|
+ [订单 800000 行] 累计 28.1s | 28.49k/s | 磁盘 2186.3MB
|
|
|
+ [订单 1000000 行] 累计 36.1s | 27.66k/s | 磁盘 2214.4MB
|
|
|
+ 订单表 orders 写入 1000000 行 行数=1000000 耗时=36.2s 27.62k/s
|
|
|
+ 关联计数: 订单表按 EmpNo 索引 × 20 行数=20 耗时=1ms 28.95k/s
|
|
|
+ 关联计数: 员工表按 Dept 索引 × 100 (每次 100000 行) 行数=10000000 耗时=1.066s 9.38M/s
|
|
|
|
|
|
========================================================================================================
|
|
|
P5 更新 (单行整行重写 / core 批量更新 / 索引列更新后索引是否同步)
|
|
|
========================================================================================================
|
|
|
- 单行更新 Update(整行重写) × 2000 行数=2000 耗时=150ms 13.32k/s
|
|
|
- core 批量更新 Updater.Exec (Score=500 → Age=99) 行数=10000 耗时=8.363s 1.20k/s
|
|
|
- 索引列更新后 Count(Age=99) 行数=10000 耗时=0s 20.95M/s
|
|
|
- core 批量更新字符串索引列 (Score=321 → Dept=Dept099) 行数=10000 耗时=8.516s 1.17k/s
|
|
|
+ 单行更新 Update(整行重写) × 2000 行数=2000 耗时=152ms 13.13k/s
|
|
|
+ core 批量更新 Updater.Exec (Score=500 → Age=99) 行数=10000 耗时=8.731s 1.15k/s
|
|
|
+ 索引列更新后 Count(Age=99) 行数=10000 耗时=1ms 17.89M/s
|
|
|
+ core 批量更新字符串索引列 (Score=321 → Dept=Dept099) 行数=10000 耗时=9.031s 1.11k/s
|
|
|
|
|
|
========================================================================================================
|
|
|
P6 删除 (逐行删 100000 行 / 批量删除全表重建) + 全量一致性校验
|
|
|
========================================================================================================
|
|
|
- 逐行 Delete(pkID) × 100000 行数=100000 耗时=22.002s 4.55k/s
|
|
|
- 批量删除 orders (Status=0, 200000 行) 触发全表重建 行数=200000 耗时=5.216s 38.34k/s
|
|
|
- 批量删除后 员工→订单 关联计数 × 20 行数=20 耗时=1ms 23.49k/s
|
|
|
+ 逐行 Delete(pkID) × 100000 行数=100000 耗时=24.331s 4.11k/s
|
|
|
+ 批量删除 orders (Status=0, 200000 行) 触发全表重建 行数=200000 耗时=5.243s 38.14k/s
|
|
|
+ 批量删除后 员工→订单 关联计数 × 20 行数=20 耗时=1ms 22.93k/s
|
|
|
|
|
|
--- 6.3 一致性校验 (更新 + 删除之后, 期望值由公式推导) ---
|
|
|
- 全表扫描 删除后全量校验(公式) 行数=9900000 耗时=23.312s 424.67k/s
|
|
|
- 索引计数复核 Dept × 100 行数=9900000 耗时=866ms 11.43M/s
|
|
|
+ 全表扫描 删除后全量校验(公式) 行数=9900000 耗时=23.293s 425.02k/s
|
|
|
+ 索引计数复核 Dept × 100 行数=9900000 耗时=879ms 11.27M/s
|
|
|
|
|
|
========================================================================================================
|
|
|
P7 Schema 变更: 增列 / 删列 / 改列名 (含数据正确性校验)
|
|
|
@@ -164,10 +164,10 @@ P7 Schema 变更: 增列 / 删列 / 改列名 (含数据正确性校验)
|
|
|
[重要语义] DROP COLUMN 是软删除, 数据仍留在行内; 重新 ADD 同名列会"复活"老行数据: 这解释了为什么改列名(删+加新名)后数据看似丢失, 但加回旧列名后又能读到 → 敏感数据无法靠删列来清除, 需要重建表/覆写
|
|
|
|
|
|
--- 7.6 重建 Dept 索引 + core 层全表校验 ---
|
|
|
- 重建索引后 索引计数复核 Dept × 100 行数=9900003 耗时=645ms 15.36M/s
|
|
|
- core 全表扫描 P7 变更后全量校验 行数=9900003 耗时=26.129s 378.89k/s
|
|
|
+ 重建索引后 索引计数复核 Dept × 100 行数=9900003 耗时=647ms 15.29M/s
|
|
|
+ core 全表扫描 P7 变更后全量校验 行数=9900003 耗时=25.995s 380.85k/s
|
|
|
|
|
|
- [已关库] 磁盘 2256.8MB | GoAlloc=21MB Sys=1218MB HeapInuse=22MB NumGC=53668
|
|
|
+ [已关库] 磁盘 2256.8MB | GoAlloc=28MB Sys=1128MB HeapInuse=28MB NumGC=53678
|
|
|
|
|
|
========================================================================================================
|
|
|
P8 引擎语义探针 (独立库 bench_10m_probe.db, 不影响主库)
|
|
|
@@ -205,12 +205,12 @@ P9 关库重开: 持久化 / schema / 索引 校验
|
|
|
========================================================================================================
|
|
|
重开后 emp 活跃列: [_id No Name Age Score Salary Active DeptName Dept]
|
|
|
TotalRows=9900003 (期望 9900003) | 磁盘 2257.5MB
|
|
|
- core 全表扫描 重开后 core 全量校验 行数=9900003 耗时=27.239s 363.45k/s
|
|
|
+ core 全表扫描 重开后 core 全量校验 行数=9900003 耗时=27.462s 360.50k/s
|
|
|
|
|
|
--- 9.2 ORM 重开表 (UseTable 会按 struct 同步 schema) ---
|
|
|
UseTable[Emp] 之后活跃列: [_id No Name Age Score Salary Active Dept]
|
|
|
[风险] ORM 重开表会按 struct 强制同步 schema, 静默删除 struct 里没有的列: 纯 core 视角活跃列=[_id No Name Age Score Salary Active DeptName Dept] 含 DeptName, 调用 UseTable[Emp] 后活跃列=[_id No Name Age Score Salary Active Dept], DeptName 被自动 DropField; 手工加过列的表被 ORM 打开就会"丢列"(数据仍在行内, 再加回同名列可复活)
|
|
|
- 全表扫描 重开后 ORM 全量校验 行数=9900003 耗时=24.085s 411.05k/s
|
|
|
+ 全表扫描 重开后 ORM 全量校验 行数=9900003 耗时=24.458s 404.78k/s
|
|
|
|
|
|
========================================================================================================
|
|
|
P10 汇总报告
|
|
|
@@ -219,38 +219,38 @@ P10 汇总报告
|
|
|
【性能总表】共 32 项
|
|
|
阶段 操作 行数 耗时 速率
|
|
|
------------------------------------------------------------------------------------------------------------
|
|
|
-P1 建表 UseTable × 3 (含建表/建索引) 3 1ms 5.91k/s
|
|
|
-P2 写入 单行 Insert × 10000000 + 分档 Commit 10000000 9m15.718s 17.99k/s
|
|
|
-校验 全表扫描 写入后全量校验(插入态) 10000000 23.994s 416.77k/s
|
|
|
-P3 查询 主键点查 Find(pkID) × 20000 20000 576ms 34.73k/s
|
|
|
-P3 查询 二级索引等值 Where(No=..) × 20000 20000 1.417s 14.12k/s
|
|
|
-P3 查询 索引等值 Count(Age=..) × 20 (每次 200000 行) 4000000 230ms 17.39M/s
|
|
|
-P3 查询 索引范围 Count(Age 30..34, 1000000 行) 1000000 39ms 25.45M/s
|
|
|
-P3 查询 字符串索引 Count(Dept=Dept007, 100000 行) 100000 9ms 10.92M/s
|
|
|
-P3 查询 无索引条件 Count(Score=123, 10000 行) 全表扫描 10000000 5.401s 1.85M/s
|
|
|
-P3 查询 Limit(10).Offset(500) 10 21ms 482/s
|
|
|
-P3 查询 OrderBy(索引列 Age) + Limit(10) 流式取前 N 10 54ms 184/s
|
|
|
-P3 查询 OrderBy(非索引列 Score) 100000 行参与内存排序 100000 2.824s 35.41k/s
|
|
|
-P3 聚合 Sum(Salary) 全表 10000000 3.147s 3.18M/s
|
|
|
-P3 聚合 Max(No) 10000000 0s 234967.93M/s
|
|
|
-P4 多表 维度表 dept_dim 写入 100 行 100 19ms 5.39k/s
|
|
|
-P4 多表 订单表 orders 写入 1000000 行 1000000 32.943s 30.36k/s
|
|
|
-P4 多表 关联计数: 订单表按 EmpNo 索引 × 20 20 1ms 27.69k/s
|
|
|
-P4 多表 关联计数: 员工表按 Dept 索引 × 100 (每次 100000 行) 10000000 877ms 11.40M/s
|
|
|
-P5 更新 单行更新 Update(整行重写) × 2000 2000 150ms 13.32k/s
|
|
|
-P5 更新 core 批量更新 Updater.Exec (Score=500 → Age=99) 10000 8.363s 1.20k/s
|
|
|
-P5 校验 索引列更新后 Count(Age=99) 10000 0s 20.95M/s
|
|
|
-P5 更新 core 批量更新字符串索引列 (Score=321 → Dept=Dept099) 10000 8.516s 1.17k/s
|
|
|
-P6 删除 逐行 Delete(pkID) × 100000 100000 22.002s 4.55k/s
|
|
|
-P6 删除 批量删除 orders (Status=0, 200000 行) 触发全表重建 200000 5.216s 38.34k/s
|
|
|
-P6 校验 批量删除后 员工→订单 关联计数 × 20 20 1ms 23.49k/s
|
|
|
-校验 全表扫描 删除后全量校验(公式) 9900000 23.312s 424.67k/s
|
|
|
-P6 校验 索引计数复核 Dept × 100 9900000 866ms 11.43M/s
|
|
|
+P1 建表 UseTable × 3 (含建表/建索引) 3 1ms 5.24k/s
|
|
|
+P2 写入 单行 Insert × 10000000 + 分档 Commit 10000000 10m24.726s 16.01k/s
|
|
|
+校验 全表扫描 写入后全量校验(插入态) 10000000 28.129s 355.50k/s
|
|
|
+P3 查询 主键点查 Find(pkID) × 20000 20000 609ms 32.83k/s
|
|
|
+P3 查询 二级索引等值 Where(No=..) × 20000 20000 1.782s 11.22k/s
|
|
|
+P3 查询 索引等值 Count(Age=..) × 20 (每次 200000 行) 4000000 281ms 14.23M/s
|
|
|
+P3 查询 索引范围 Count(Age 30..34, 1000000 行) 1000000 142ms 7.02M/s
|
|
|
+P3 查询 字符串索引 Count(Dept=Dept007, 100000 行) 100000 10ms 9.56M/s
|
|
|
+P3 查询 无索引条件 Count(Score=123, 10000 行) 全表扫描 10000000 7.39s 1.35M/s
|
|
|
+P3 查询 Limit(10).Offset(500) 10 23ms 433/s
|
|
|
+P3 查询 OrderBy(索引列 Age) + Limit(10) 流式取前 N 10 65ms 153/s
|
|
|
+P3 查询 OrderBy(非索引列 Score) 100000 行参与内存排序 100000 3.451s 28.98k/s
|
|
|
+P3 聚合 Sum(Salary) 全表 10000000 4.053s 2.47M/s
|
|
|
+P3 聚合 Max(No) 10000000 0s 156673.51M/s
|
|
|
+P4 多表 维度表 dept_dim 写入 100 行 100 18ms 5.61k/s
|
|
|
+P4 多表 订单表 orders 写入 1000000 行 1000000 36.2s 27.62k/s
|
|
|
+P4 多表 关联计数: 订单表按 EmpNo 索引 × 20 20 1ms 28.95k/s
|
|
|
+P4 多表 关联计数: 员工表按 Dept 索引 × 100 (每次 100000 行) 10000000 1.066s 9.38M/s
|
|
|
+P5 更新 单行更新 Update(整行重写) × 2000 2000 152ms 13.13k/s
|
|
|
+P5 更新 core 批量更新 Updater.Exec (Score=500 → Age=99) 10000 8.731s 1.15k/s
|
|
|
+P5 校验 索引列更新后 Count(Age=99) 10000 1ms 17.89M/s
|
|
|
+P5 更新 core 批量更新字符串索引列 (Score=321 → Dept=Dept099) 10000 9.031s 1.11k/s
|
|
|
+P6 删除 逐行 Delete(pkID) × 100000 100000 24.331s 4.11k/s
|
|
|
+P6 删除 批量删除 orders (Status=0, 200000 行) 触发全表重建 200000 5.243s 38.14k/s
|
|
|
+P6 校验 批量删除后 员工→订单 关联计数 × 20 20 1ms 22.93k/s
|
|
|
+校验 全表扫描 删除后全量校验(公式) 9900000 23.293s 425.02k/s
|
|
|
+P6 校验 索引计数复核 Dept × 100 9900000 879ms 11.27M/s
|
|
|
P7 校验 新增列索引 Count(Level=777) 3 1ms 3.00k/s
|
|
|
-P7 校验 重建索引后 索引计数复核 Dept × 100 9900003 645ms 15.36M/s
|
|
|
-校验 core 全表扫描 P7 变更后全量校验 9900003 26.129s 378.89k/s
|
|
|
-校验 core 全表扫描 重开后 core 全量校验 9900003 27.239s 363.45k/s
|
|
|
-校验 全表扫描 重开后 ORM 全量校验 9900003 24.085s 411.05k/s
|
|
|
+P7 校验 重建索引后 索引计数复核 Dept × 100 9900003 647ms 15.29M/s
|
|
|
+校验 core 全表扫描 P7 变更后全量校验 9900003 25.995s 380.85k/s
|
|
|
+校验 core 全表扫描 重开后 core 全量校验 9900003 27.462s 360.50k/s
|
|
|
+校验 全表扫描 重开后 ORM 全量校验 9900003 24.458s 404.78k/s
|
|
|
|
|
|
【校验总表】共 87 项: 通过 87, 失败 0
|
|
|
|
|
|
@@ -262,6 +262,6 @@ P7 校验 重建索引后 索引计数复核 Dept × 100
|
|
|
3. [风险] ORM 重开表会按 struct 强制同步 schema, 静默删除 struct 里没有的列
|
|
|
纯 core 视角活跃列=[_id No Name Age Score Salary Active DeptName Dept] 含 DeptName, 调用 UseTable[Emp] 后活跃列=[_id No Name Age Score Salary Active Dept], DeptName 被自动 DropField; 手工加过列的表被 ORM 打开就会"丢列"(数据仍在行内, 再加回同名列可复活)
|
|
|
|
|
|
-【结论】总耗时 13m32s | 校验 87/87 通过 | 数据问题 3 项
|
|
|
+【结论】总耗时 14m56s | 校验 87/87 通过 | 数据问题 3 项
|
|
|
主库保留: /Users/yl32940/Projects/TsDB2/demo/bench_10m/bench_10m.db (2257.5MB) | 探针库: /Users/yl32940/Projects/TsDB2/demo/bench_10m/bench_10m_probe.db (0.6MB)
|
|
|
可将上述 .db 交给 analyzer 审计
|