Background
- 这里读写测试是为了大致了解下Influxdb和TDengine的读写速度,以及对比数据存储大小。
- Influxdb是用go语言开发的,TDengine是用c语言开发,
- Influxdb和TDengine都支持单机版和集群版,这里都使用单机版测试。
- TDengine服务端下载地址TDengine-server-2.4.0.12-Linux-x64.tar.gz (15.5 M)
- TDengine Windows客户端下载地址TDengine-client-2.4.0.12-Windows-x86.exe
- TDengine 官方文档
- TDengine提供两种读写方式,这里我们使用JNI方式。




- 这张图是之前用influxdata公司提供的工具测试的

一、最终测试结果
- 有一点需要注意,从后面我贴出的源码也可以看出,写入Influxdb的数据是在计时前准备好的,并且数据都是已经序列化过的数据;而TDengine的数据是边组织边写入,这在一定程度上也拖慢了写入速度,不过开篇我已经说了,我这里旨在大概了解下,不做科学准确的性能对比测试哈(TDengine官方的测试对比更科学可靠)。
- 无论是写入还是查询,Influxdb的cpu负载和内存占用会随着数据量的增加而增加,例如一亿条数要5秒左右出结果,而TDengine查询几乎秒出,cpu负载和内存占用都较低且波动不大。




二、测试基本环境
| k | v |
|---|---|
| os | Centos7.9 |
| cpu | 12 Intel® Core™ i7-8700 CPU @ 3.20GHz |
| os | Centos7.9 |
| 内存 | 16g |
| Influxdb | 1.6.1 |
| TDengine | 2.4.0.12 |
三、测试源码
- maven 依赖
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.37</version>
</dependency>
package com.cloudansys.test;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.taosdata.jdbc.TSDBDriver;
import com.taosdata.jdbc.TSDBPreparedStatement;
import okhttp3.OkHttpClient;
import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
import org.influxdb.dto.Point;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
public class TestWriteRead {
public static void main(String[] args) throws Exception {
int factor = 2000;
writeToTDengine(factor);
// writeToInfluxDB(factor);
// queryTDengine();
}
/**
* 写入 tdengine
*/
private static void writeToTDengine(int factor) throws Exception {
Connection conn = getTdConn();
int numOfTid = 100, ef = factor / 100, numOfRow = ef * 10000;
int bf = 2000, count = numOfRow / bf, left = factor;
String sql = "insert into ? using st_wy tags(?) values(?,?,?,?)";
TSDBPreparedStatement pStmt = conn.prepareStatement(sql).unwrap(TSDBPreparedStatement.class);
long startTime = System.currentTimeMillis

本文通过实测比较了InfluxDB和TDengine的单机版读写性能,展示了写入过程中的差异,并指出InfluxDB随着数据量增长资源占用上升。重点介绍了测试环境和源码,同时提到了TDengine的JNI读写方式及GUI特点。
最低0.47元/天 解锁文章
8256

被折叠的 条评论
为什么被折叠?



