本文记录单机环境下TDengine、InfluxDB和PostgreSQL三种数据库,处理时序数据的性能对比,主要考察数据的写入和读取速度。
一、测试环境
服务器
CPU | 内存 | 硬盘 | 网络 |
---|---|---|---|
Intel i7 4核8线程 | 32G | 2T 7200转机械 | 千兆网络 |
操作系统 | TDengine | Influxdb | PostgreSQL |
---|---|---|---|
CentOS 7.9 | 2.6 | 2.0 beta | 9.0 |
客户端
CPU | 内存 | 硬盘 | 网络 |
---|---|---|---|
Intel i7 4核8线程 | 32G | 256G SSD固态 | 千兆网络 |
操作系统 | JDK | JMeter |
---|---|---|
Windows10 | OpenJDK 11 | v4 |
二、测试数据
测试数据为10个csv文件,每个文件大小约为10GB,包含下面的内容:
- 每个文件包含100个设备的数据
- 数据频率为1秒
- 每行数据包含1000列
- 所有数据均为double类型
三、测试结果
数据写入
同时向数据库写入10个csv文件,多次执行取结果平均值:
数据库 | 数据行导入速率(record/s) | 数据点导入速率(points/s) |
---|---|---|
InfluxDB | 235 | 235000 |
TDengine | 750 | 750208 |
PostgreSQL | 213 | 213000 |
数据读取
数据读取性能与读取的列数相关,因此分别测试了不同列数情况下三种数据库的读取速度(单并发):
四、测试结论
以上初步测试结果显示,在单并发大多数场景下,TDengine的性能相比InfluxDB和PostgreSQL具有较大优势。由于项目时间所限,此次未能对多并发情况下各个数据库的性能进行对比略显遗憾。作为补充,可参考集群环境多并发条件下TDengine与Cassandra的性能对比(链接)。
欢迎转载
请保留原始链接:https://bjzhanghao.com/p/3187
请保留原始链接:https://bjzhanghao.com/p/3187