TSBS 实测:KaiwuDB VS TimescaleDB 性能对比,原生时序与 PG 时序化差距有多大
在时序数据库领域,TimescaleDB 作为 PostgreSQL 生态的时序化方案,扩时序能力都会优先考虑,是 PG 系时序方案的标杆。而 KaiwuDB 这两年发声也挺多的,作为国产原生时序数据库,在各类基准测试里表现亮眼,往期几篇我也依次分享了KaiwuDB 与 IoTDB、TDengine、InfluxDB 的对比测试数据情况。
这次依然还是想沿用 TSBS 标准基准,想来看看 PG 生态主流时序化方案 VS 国产原生时序新锐,两者技术路线完全不同的情况下到底性能差异如何,分享给同样在时序选型的朋友参考。
一、测试环境与配置
本次测试依然保证两个数据库(KaiwuDB v3.1.0 与 TimescaleDB v2.25.2 )的运行环境完全一致,排除了环境差异对测试结果的干扰,全程采用 Docker 容器化部署,具体配置如下:
• 2 颗 Intel Xeon Gold 6240 CPU(2.6GHz 基础频率,最高 3.9GHz),共 72 逻辑核(18 核 / 颗 ×2,超线程开启),2 个 NUMA 节点
• 通过 Docker 限制单节点仅使用 16 核,单节点内存上限为 32GB
• 总容量 394.8GB(MemTotal: 394835452 kB),支持 DirectMap4k / DirectMap2M / DirectMap1G 页映射
• 每个容器(节点)绑定单个 1.8TiB Intel NVMe 硬盘
PS:其中,为了保证较好的性能,TimescaleDB 需要针对不同的场景设置不同的 Chunk 参数,不同场景下参数的设置如下表所示。
(此参数的设置,充分参考了对比报告【TimescaleDB vs. InfluxDB: Purpose Built Differently for Time-Series Data.https://www.timescale.com/blog/timescaledb-vs-influxdb-for-time-series-data-timescale-influx-sql-nosql-36489299877/】中推荐的配置参数设置,以确保能够最大化写入性能指标。)

二、核心结论一眼看懂
-
写入优势:KaiwuDB 在 4/4 个场景中全部领先,吞吐最高超 15 倍,原生架构优势明显。
-
查询领先:Worker 1 相较于TimescaleDB 平均提升 76.6%,Worker 8 提升 87.6%,几乎全场景更快。
-
复杂查询:高聚合、lastpoint 等场景差距达百倍级。
-
稳定性能:数据量上来后,TimescaleDB 性能衰减严重,KaiwuDB 几乎无波动。
三、写入性能(rows/s,数值越高越好)
写入部分使用写入速度作为吞吐指标,统一按 rows/s 展示,数值越高越好。相对差异采用 (KaiwuDB - TimescaleDB) / TimescaleDB 计算。
| 节点 | 场景 | KaiwuDB rows/s | TimescaleDB rows/s | 相对差异 |
| 单机 | 场景一 | 3006478.08 | 289739.45 | 9.376 |
| 单机 | 场景二 | 2961473.92 | 175900.04 | 15.836 |
| 单机 | 场景三 | 2825616.69 | 211793.09 | 12.341 |
| 单机 | 场景四 | 1626088.47 | 244959.88 | 5.638 |
KaiwuDB 在所有场景下吞吐都大幅领先,尤其在中规模场景,吞吐接近 16 倍差距。原生时序存储引擎对高并发写入的优化,明显强于 PG 时序化方案;TimescaleDB 写入上限偏低,数据量增大后吞吐下滑明显。

四、查询性能(ms,越低越好)
查询部分采用公式 (TimescaleDB 延迟 - KaiwuDB 延迟) / TimescaleDB 延迟计算相对差异。正值表示 KaiwuDB 查询延迟更低,负值表示 TimescaleDB 更优。测试分别在 Worker 1、Worker 8 两种并发下实测,覆盖 15 类典型时序查询,下图为数据差异总览:


通过上图可以看出:
• 单机 worker 1查询:KaiwuDB 在 55/60 个测点延迟更低,平均改善 +76.6%。
• 单机 worker 8查询:KaiwuDB 在 59/60 个测点延迟更低,平均改善 +87.6%。
| 节点 | worker | KaiwuDB领先数 | 平均提升 | 最佳查询项 | 最弱查询项 | |
| 单机 | 1 | 55/60 | 76.60% | lastpoint (+98.1%) | single-groupby-5-8-1 (+43.9%) | |
| 单机 | 8 | 59/60 | 87.60% | high-cpu-1 (+97.7%) | high-cpu-all (+49.0%) | |
接下来,我们分别看看小规模(100 设备)、中规模(4000 设备)、大规模及超大规模(10 万 / 100 万设备),在 Worker1(低并发)、 Worker8(高并发)不同情况下的性能情况。
4.1 小规模(100 台)
Worker 1
在单 Worker 低并发下,两者均能快速响应。KaiwuDB 在所有查询类型上全面领先,尤其在 lastpoint(最新点查询)上优势巨大,延迟从 TimescaleDB 的 7114ms 降至 0.9ms。
Worker 8
当并发提升到 8 Workers 后,TimescaleDB 的延迟开始显著增加,性能衰减明显,而 KaiwuDB 依旧保持极低且稳定的延迟。在 lastpoint 和复杂聚合查询上,KaiwuDB 的性能优势进一步扩大,普遍快一到两个数量级。
| Worker 1查询项 | KaiwuDB(ms) | TimescaleDB(ms) | 相对差异 |
| single-groupby-1-1-1 | 0.92 | 11.54 | 92.00% |
| single-groupby-1-1-12 | 1.34 | 33.51 | 96.00% |
| single-groupby-1-8-1 | 1.34 | 11.88 | 88.70% |
| single-groupby-5-1-1 | 1.08 | 6.75 | 84.00% |
| single-groupby-5-1-12 | 2.06 | 63.65 | 96.80% |
| single-groupby-5-8-1 | 1.75 | 12.32 | 85.80% |
| cpu-max-all-1 | 1.58 | 35.09 | 95.50% |
| cpu-max-all-8 | 4.06 | 37.79 | 89.30% |
| double-groupby-1 | 6.15 | 155.19 | 96.00% |
| double-groupby-5 | 9.29 | 187.64 | 95.00% |
| double-groupby-all | 13.04 | 259.86 | 95.00% |
| high-cpu-all | 6.75 | 98.51 | 93.10% |
| high-cpu-1 | 1.22 | 34.71 | 96.50% |
| lastpoint | 0.9 | 7114.12 | 100.00% |
| groupby-orderby-limit | 1.45 | 31.56 | 95.40% |
| worker 8查询项 | KaiwuDB (ms) | TimescaleDB (ms) | KaiwuDB 相对差异 |
| single-groupby-1-1-1 | 0.81 | 17.23 | 95.30% |
| single-groupby-1-1-12 | 1.13 | 91.71 | 98.80% |
| single-groupby-1-8-1 | 1.07 | 16.88 | 93.70% |
| single-groupby-5-1-1 | 0.75 | 11.46 | 93.50% |
| single-groupby-5-1-12 | 1.51 | 103.41 | 98.50% |
| single-groupby-5-8-1 | 1.57 | 17.94 | 91.20% |
| cpu-max-all-1 | 1.15 | 77.37 | 98.50% |
| cpu-max-all-8 | 3.54 | 85.37 | 95.90% |
| double-groupby-1 | 16.21 | 202.58 | 92.00% |
| double-groupby-5 | 23.38 | 206.66 | 88.70% |
| double-groupby-all | 33.4 | 274.52 | 87.80% |
| high-cpu-all | 22.89 | 118.18 | 80.60% |
| high-cpu-1 | 1 | 75.13 | 98.70% |
| lastpoint | 1.4 | 8232.38 | 100.00% |
| groupby-orderby-limit | 1.48 | 80.4 | 98.20% |
4.2 中规模(4000 台)
Worker 1
简单查询差距依然不大,但在 double-groupby(双维度分组)等复杂聚合查询上,差距开始急剧拉大。例如 double-groupby-1 查询,TimescaleDB 耗时 6300ms,而 KaiwuDB 仅需 183.69ms,优势高达 97.1%。
Worker 8
并发压力下,TimescaleDB 的多个查询开始进入秒级甚至 8 秒以上(double-groupby-all 达 8073ms),性能严重下滑。KaiwuDB 虽然延迟相比低并发也有所增加,但始终保持在可控范围内(最高 1241ms),表现出极佳的性能韧性。
| worker 1查询项 | KaiwuDB(ms) | TimescaleDB(ms) | 相对差异 |
| single-groupby-1-1-1 | 0.97 | 19.81 | 95.10% |
| single-groupby-1-1-12 | 1.42 | 358.64 | 99.60% |
| single-groupby-1-8-1 | 1.74 | 225.08 | 99.20% |
| single-groupby-5-1-1 | 1.12 | 4.24 | 73.60% |
| single-groupby-5-1-12 | 2 | 16.02 | 87.50% |
| single-groupby-5-8-1 | 2.72 | 9.17 | 70.30% |
| cpu-max-all-1 | 1.61 | 54.44 | 97.00% |
| cpu-max-all-8 | 5.56 | 434.68 | 98.70% |
| double-groupby-1 | 183.69 | 6300.32 | 97.10% |
| double-groupby-5 | 283.36 | 2179.98 | 87.00% |
| double-groupby-all | 401.24 | 2670.62 | 85.00% |
| high-cpu-all | 168.7 | 1232.48 | 86.30% |
| high-cpu-1 | 1.13 | 27.1 | 95.80% |
| lastpoint | 3.22 | 114.86 | 97.20% |
| groupby-orderby-limit | 4.41 | 134.79 | 96.70% |
| worker 8查询项 | KaiwuDB(ms) | TimescaleDB(ms) | 相对差异 |
| single-groupby-1-1-1 | 0.68 | 11.72 | 94.20% |
| single-groupby-1-1-12 | 1.11 | 38.85 | 97.10% |
| single-groupby-1-8-1 | 1.26 | 37.45 | 96.60% |
| single-groupby-5-1-1 | 0.79 | 10.47 | 92.50% |
| single-groupby-5-1-12 | 1.59 | 32.1 | 95.00% |
| single-groupby-5-8-1 | 1.42 | 21.13 | 93.30% |
| cpu-max-all-1 | 1.07 | 33.17 | 96.80% |
| cpu-max-all-8 | 3.68 | 186.18 | 98.00% |
| double-groupby-1 | 561.16 | 7883.08 | 92.90% |
| double-groupby-5 | 874.2 | 5940.89 | 85.30% |
| double-groupby-all | 1241.75 | 8073.5 | 84.60% |
| high-cpu-all | 825.85 | 3606.86 | 77.10% |
| high-cpu-1 | 1.05 | 44.55 | 97.60% |
| lastpoint | 7.75 | 193.24 | 96.00% |
| groupby-orderby-limit | 16.54 | 110.47 | 85.00% |
4.3 大规模(10 万台)
Worker 1
TimescaleDB 性能严重承压,double-groupby-1 查询耗时高达 19715ms(近20秒),基本不具备可用性。KaiwuDB 虽然延迟也增长到秒级(1074ms),但相比 TimescaleDB 仍有近 20 倍的性能优势。lastpoint 查询上,KaiwuDB 同样保持近 20 倍的优势。
Worker 8
TimescaleDB 的性能彻底崩溃,大量复杂查询耗时在 8-22 秒之间。KaiwuDB 的高并发查询延迟虽然也上升至 5-7 秒,但整体可控,且在高负载下无任何失败或超时,稳定性优势彻底拉开。
| worker 1查询项 | KaiwuDB(ms) | TimescaleDB(ms) | 相对差异 |
| single-groupby-1-1-1 | 0.96 | 4.53 | 78.80% |
| single-groupby-1-1-12 | 0.99 | 23.93 | 95.90% |
| single-groupby-1-8-1 | 1.45 | 15.93 | 90.90% |
| single-groupby-5-1-1 | 1.06 | 3.74 | 71.70% |
| single-groupby-5-1-12 | 1.22 | 10.61 | 88.50% |
| single-groupby-5-8-1 | 1.96 | 10.28 | 80.90% |
| cpu-max-all-1 | 1.22 | 6.04 | 79.80% |
| cpu-max-all-8 | 2.88 | 32.68 | 91.20% |
| double-groupby-1 | 1074.26 | 19715.21 | 94.60% |
| double-groupby-5 | 1689.85 | 5949.9 | 71.60% |
| double-groupby-all | 2475.25 | 6917.85 | 64.20% |
| high-cpu-all | 915.62 | 4005.01 | 77.10% |
| high-cpu-1 | 0.94 | 12.35 | 92.40% |
| lastpoint | 52.04 | 2207.94 | 97.60% |
| groupby-orderby-limit | 72.43 | 845 | 91.40% |
| worker 8查询项 | KaiwuDB(ms) | TimescaleDB(ms) | 相对差异 |
| single-groupby-1-1-1 | 0.67 | 10.52 | 93.60% |
| single-groupby-1-1-12 | 0.79 | 24.5 | 96.80% |
| single-groupby-1-8-1 | 1.09 | 18.87 | 94.20% |
| single-groupby-5-1-1 | 0.76 | 9.81 | 92.30% |
| single-groupby-5-1-12 | 0.96 | 26.45 | 96.40% |
| single-groupby-5-8-1 | 1.57 | 15.23 | 89.70% |
| cpu-max-all-1 | 1 | 19.82 | 95.00% |
| cpu-max-all-8 | 2.12 | 42.52 | 95.00% |
| double-groupby-1 | 3550.44 | 18434.69 | 80.70% |
| double-groupby-5 | 5425.19 | 15823.77 | 65.70% |
| double-groupby-all | 7751.04 | 22178.53 | 65.10% |
| high-cpu-all | 5096.47 | 8756.72 | 41.80% |
| high-cpu-1 | 0.75 | 41.9 | 98.20% |
| lastpoint | 169.74 | 2812.89 | 94.00% |
| groupby-orderby-limit | 409.1 | 1045.82 | 60.90% |
4.4 超大规模(100 万台)
Worker 1
TimescaleDB 已到达极限,double-groupby-all 查询耗时超过 40 秒,lastpoint 查询也超过 21 秒。值得注意的是,在 single-groupby-1-1-1、single-groupby-1-8-1、cpu-max-all-1 等几个最简单的单维度点查上,TimescaleDB 的响应速度(<1ms)反常地优于 KaiwuDB(~1ms),可能是得益于其极端的缓存策略或执行计划优化,但并不影响整体性能格局。KaiwuDB 在所有复杂查询上依然保持压倒性优势,double-groupby-all 比对方快 91.9%。
Worker 8
并发拉满后,TimescaleDB 在部分双维度聚合查询上出现灾难性延迟,double-groupby-5 耗时 477295ms(约 8 分钟),double-groupby-all 更是高达 1152227ms(约 19 分钟),基本等同于不可用。而 KaiwuDB 即使在如此极限的压力下,所有查询仍能在 5.4 秒内返回,且无任何失败或中断,稳定性优势达到顶峰。
| worker 1查询项 | KaiwuDB(ms) | TimescaleDB(ms) | 相对差异 |
| single-groupby-1-1-1 | 0.91 | 0.78 | -16.70% |
| single-groupby-1-1-12 | 0.85 | 8 | 89.40% |
| single-groupby-1-8-1 | 1.27 | 1.02 | -24.50% |
| single-groupby-5-1-1 | 1.03 | 1.27 | 18.90% |
| single-groupby-5-1-12 | 1.07 | 8.75 | 87.80% |
| single-groupby-5-8-1 | 1.39 | 0.86 | -61.60% |
| cpu-max-all-1 | 1.26 | 0.96 | -31.30% |
| cpu-max-all-8 | 1.57 | 0.81 | -93.80% |
| double-groupby-1 | 1581.06 | 7907.44 | 80.00% |
| double-groupby-5 | 2644.18 | 14863.83 | 82.20% |
| double-groupby-all | 3328.03 | 40925.49 | 91.90% |
| high-cpu-all | 308.32 | 975.67 | 68.40% |
| high-cpu-1 | 0.82 | 5.43 | 84.90% |
| lastpoint | 527.71 | 21059.11 | 97.50% |
| groupby-orderby-limit | 410.06 | 4544.74 | 91.00% |
| worker 8查询项 | KaiwuDB(ms) | TimescaleDB(ms) | 相对差异 |
| single-groupby-1-1-1 | 0.63 | 4.16 | 84.90% |
| single-groupby-1-1-12 | 0.64 | 12.55 | 94.90% |
| single-groupby-1-8-1 | 0.88 | 4.39 | 80.00% |
| single-groupby-5-1-1 | 0.68 | 4.63 | 85.30% |
| single-groupby-5-1-12 | 0.67 | 13.35 | 95.00% |
| single-groupby-5-8-1 | 1.22 | 4.91 | 75.20% |
| cpu-max-all-1 | 0.95 | 4.6 | 79.30% |
| cpu-max-all-8 | 1.25 | 4.21 | 70.30% |
| double-groupby-1 | 2703.22 | 16466.39 | 83.60% |
| double-groupby-5 | 4494.9 | 477295.9 | 99.10% |
| double-groupby-all | 5420.57 | 1152227 | 99.50% |
| high-cpu-all | 1164.16 | 1123.89 | -3.60% |
| high-cpu-1 | 0.63 | 17.71 | 96.40% |
| lastpoint | 1693.98 | 28103.82 | 94.00% |
| groupby-orderby-limit | 1472.12 | 5066.39 | 70.90% |
五、实测总结
-
写入能力:KaiwuDB 原生时序引擎优势突出,吞吐碾压 PG 时序化方案,高并发写入更稳更强。
-
查询表现:整体领先,复杂查询拉开百倍差距,并发越高优势越明显。
-
稳定性:数据量越大、并发越高,TimescaleDB 衰减越严重;KaiwuDB 波动极小,更适合长期高负载运行。
-
架构差异:原生时序 vs PG 插件化,在高吞吐、高并发、复杂查询场景的差距被彻底放大。
六、选型建议
KaiwuDB 在大规模、高并发、复杂查询场景下优于 PG 时序化方案;TimescaleDB 更适合小规模、轻查询、依赖 PG 生态的边际场景。
✅ 优先选择 KaiwuDB 的场景
| 场景类型 | 典型业务 |
| 工业物联网 | 工厂设备监控、产线数据采集、预测性维护 |
| 运维监控(DevOps) | 服务器/容器/网络指标采集、告警、可视化 |
| 大规模时间序列分析 | 金融 tick 数据、能源计量、车联网轨迹 |
| 高并发查询场景 | 多用户仪表盘、实时大屏、多租户分析 |
| 长期高负载运行 | 7x24 小时采集、连续写入 + 查询混合负载 |
⚠️ 可考虑 TimescaleDB 的场景
| 场景类型 | 典型业务 |
| 小规模轻量监控 | 家庭智能设备、小型实验室数据、个人项目 |
| 重度依赖 PG 生态 | 已有大量 PG 业务代码、需要复用 PG 函数/索引/视图 |
| 查询模式极其简单 | 仅做单时间线点查、极简过滤 |
| 不考虑未来扩展 | 临时项目、PoC 验证、数据量可控 |
🚫 不建议选择 TimescaleDB 的场景
-
设备数 > 1 万台:中规模下 TimescaleDB 复杂查询已进入秒级,大规模下突破 20 秒。
-
并发 > 8:高并发下 TimescaleDB 延迟快速抬升,超大规模双维度聚合达分钟级,基本不可用。
-
需要 lastpoint / 高聚合 / 双维度分组:这些恰恰是时序场景核心需求,KaiwuDB 优势最明显(90%-99%)。
-
长期生产运行:TimescaleDB 性能随数据量增长衰减明显,运维成本高,需频繁调优 chunk 参数。
至此,已经基于TSBS和大家分享了高提名时序库TD、IoTDB、KaiwuDB、influxDB、TimescaleDB 的性能对比情况。后面大家还有什么想了解,欢迎评论区互动,继续和大家唠唠。
>>>
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)