数据库版本:tdengine/tsdb:3.4.1.6
建表语句(其中content字段存储的是使用 Snappy算法压缩JSON字符串后的二进制数据,压缩后大小在3KB左右):
CREATE STABLE IF NOT EXISTS test.transmit_log
( ts TIMESTAMP,
status BOOL,
compress BOOL,
content BLOB)
TAGS (
equipment_sequence binary(64),
rule_name binary(64) );
表中数据条数:64329
问题:
执行下述SQL查询语句的时候,cpu占用率会飙升,基本每执行一次查询就会增加100%:
SELECT * FROM lxfactorytest.transmit_log WHERE 1 = 1 AND ts >= '2026-05-27 13:10:22' AND ts <= '2026-05-27 14:10:22' ORDER BY ts DESC LIMIT 10 OFFSET 1
经过调查应该就是content字段的问题,当查询结果中不包含contnet字段的时候就不会有这个问题。
同时taosd日志报错:
05/27 14:25:19.232812 00000259 C BSE ERROR failed to load block at lino 1240 since Data file corrupted, read at offset 871248, size:864160
05/27 14:25:19.232856 00000259 C BSE ERROR failed to load block from table builder at lino 0 since Data file corrupted
05/27 14:25:19.232861 00000259 C BSE ERROR failed to seek data from table builder at lino 130 ince Data file corrupted
05/27 14:25:19.232866 00000259 C BSE failed to find seq 46493 in memtable 0x7f8255419400 at line 485 since Data file corrupted
05/27 14:25:19.232947 00000259 C BSE ERROR failed to get table reader data at line 787 since Not found
05/27 14:25:19.232951 00000259 C BSE ERROR failed to seek table pReaderMgt at line 431 since Not found
05/27 14:25:19.232965 00000259 C BSE ERROR vgId:4 failed to get table at line 160 since Not found
05/27 14:25:19.232968 00000259 C BSE ERROR vgId:4 failed to get value from seq 46493 at line 0 since Not found
05/27 14:25:19.232972 00000259 C TSD ERROR doGetValueFromBseBySeq failed at line 1129 since Not found
如果单独进行多次下述SQL查询,则不会出现上面的问题,也就是说执行一次查询10条记录的分页检索会导致cpu飙升报错,执行10次单条数据的检索不会,而且速度会比一次查询10条更快:
SELECT * FROM lxfactorytest.transmit_log WHERE ts = '2026-05-27T14:10:20.181+08:00'