如何提高涛思数据库查询效率

【TDengine 使用环境】
预生产环境

【TDengine 版本】3.3.8.4

【操作系统以及版本】Ubuntu24.04

【部署方式】非容器部署

【单节点使用】

【描述业务影响】存储表后查询表数据效率很慢,数据量越大查询越慢

【问题复现路径/shan】表结构为

CREATE STABLE bridge_mon.t_bridge_standard_device_data (
data_time timestamp,
guid varchar(64),
device_id varchar(64),
device_type varchar(64),
data_tag varchar(64),
sample_timestamp varchar(64),
sample_time timestamp,
insert_time timestamp,
data_state varchar(64),
sample_F01 varchar(64),
sample_F02 varchar(64),
sample_F03 varchar(64),
sample_F04 varchar(64)
) TAGS (
dataTag varchar(64),
deviceType varchar(64),
deviceId varchar(64)
);

【遇到的问题:问题现象及影响】查询效率慢

【资源配置】服务器单点为128GB内存,64核CPU

【报错完整截图】

1、建议将 deviceId 放到第一个tag的位置,因为第一个tag 是会自动创建索引的。

2、或者 手工创建一个 deviceId 标签的 index 索引,以便提高过滤条件。

3、另外,请执行一下语句: explain analyze verbose true select * …. limit 1000\G;将结果发送出来,我们看一下你的这个环境这个查询语句是哪个阶段费时导致返回慢了。

1、建议将 deviceId 放到第一个tag的位置,因为第一个tag 是会自动创建索引的。

处理后没效果还是查询超时,

加下我微信:13611161621. 方便的时候远程分析一下。

device_id 这个一个普通字段,做过滤条件,肯定是非常慢的。必须考虑使用 tag 字段来过滤才能快。