查询blob字段很慢,批量就容易崩

【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境

【TDengine 版本】3.3.84

【操作系统以及版本】

【部署方式】容器

【集群节点数】

【集群副本数】

【描述业务影响】

【问题复现路径/shan】查询BLOB字段慢,批量则容易崩溃

【遇到的问题:问题现象及影响】

查询包含BLOB字段的数据表时,如果不指定时间查询,会比较慢,批量查询容易爆内存,有什么优化的方法

【资源配置】4核32GB

【报错完整截图】

最主要的优化方法就是增加查询的时间范围,否则全表扫描,数据量大的时候肯定就慢了。

请将 具体的查询 sql 和 对应的 表的 schema 发出来看看。

已经增加了时间范围了
DDL:CREATE TABLE iot_recovery.edge_scheduled_data (

daq_date_time_stamp **TIMESTAMP** **NOT** **NULL**,

sensor_id **VARCHAR**(64),

direction **INT**,

sensor_type **INT**,

daq_date_start_time **VARCHAR**(20),

frequency_4_analysis **INT**,

spectrum_lines **INT**,

block_no **INT**,

point_per_block **INT**,

blocks **INT**,

rms **FLOAT**,

rms_1_6k **FLOAT**,

rms_2_1k **FLOAT**,

max **FLOAT**,

min **FLOAT**,

mean **FLOAT**,

peak **FLOAT**,

peak_to_peak **FLOAT**,

variance **FLOAT**,

average_amplitude **FLOAT**,

square_root_amplitude **FLOAT**,

kurtosis **FLOAT**,

impulse_factor **FLOAT**,

shape_indicator **FLOAT**,

crest_factor **FLOAT**,

margin_index **FLOAT**,

skewness_index **FLOAT**,

vel_rms **FLOAT**,

vel_rms_2_1k **FLOAT**,

vel_peak **FLOAT**,

time_raw_data **BLOB**,

receive_time **TIMESTAMP**,

sensor_code **VARCHAR**(64),

**CONSTRAINT** daq_date_time_stamp **PRIMARY** **KEY** (daq_date_time_stamp)

);
sql: select * from iot_recovery.edge_scheduled_data

where sensor_code = ‘124010125_1_11’ and daq_date_time_stamp > ‘2026-06-30 20:00:00’ limit 50; 这种情况下需要22秒

创建的 普通表表,没有使用超级表模式?

sensor_code = ‘124010125_1_11’ 这种过滤是比较耗时的。

这种建模方式不是很好。对于一些静态变量,应该使用超级表方式建模。这样过滤性能更快。

是超级表,这个code就是tag