【TDengine 使用环境】
测试
【TDengine 版本】3.3.8.8
【操作系统以及版本】Debian12
【部署方式】容器部署
【集群节点数】1
【集群副本数】
【描述业务影响】影响实时查询性能
【问题复现路径/shan】做过哪些操作出现的问题
创建快照表和快照扩展表,通过流式计算将计算结果存入快照扩展表
快照表ddl:
-- 股票level1行情快照
CREATE STABLE IF NOT EXISTS stock_md_lv1.snap (
_ts TIMESTAMP,
-- 基础行情
last_price FLOAT, -- 最新价
open_price FLOAT, -- 开盘价
high_price FLOAT, -- 最高价
low_price FLOAT, -- 最低价
last_close FLOAT, -- 前收盘价
amount DOUBLE, -- 成交总额
volume INT, -- 成交总量
pvolume INT, -- 原始成交总量
-- 状态 & 统计
stock_status TINYINT, -- 证券状态
open_int INT, -- 持仓量
transaction_num INT, -- 成交笔数
last_settlement_price FLOAT, -- 前结算
settlement_price FLOAT, -- 今结算
pe FLOAT, -- 市盈率
-- 五档卖盘
ask_price1 FLOAT,
ask_price2 FLOAT,
ask_price3 FLOAT,
ask_price4 FLOAT,
ask_price5 FLOAT,
ask_vol1 INT,
ask_vol2 INT,
ask_vol3 INT,
ask_vol4 INT,
ask_vol5 INT,
-- 五档买盘
bid_price1 FLOAT,
bid_price2 FLOAT,
bid_price3 FLOAT,
bid_price4 FLOAT,
bid_price5 FLOAT,
bid_vol1 INT,
bid_vol2 INT,
bid_vol3 INT,
bid_vol4 INT,
bid_vol5 INT,
-- 衍生指标
vol_ratio FLOAT,
speed_1min FLOAT,
speed_5min FLOAT
)
TAGS (
tb_name NCHAR,
symbol NCHAR, -- 证券标识:"000001.SZ"
code NCHAR, -- 证券代码:"000001"
market NCHAR -- 市场代码:"SZ" 或 "SH"
);
快照扩展表ddl
-- 快照行情扩展表
CREATE STABLE IF NOT EXISTS stock_md_lv1.snap_ext (
ts TIMESTAMP,
bs_flag NCHAR(1) -- 内外盘标识
)
TAGS (
tb_name NCHAR(32),
symbol NCHAR(32),
code NCHAR(16),
market NCHAR(8)
);
通过left join查询快照表和快照扩展表最近20条记录,查询响应很慢,查询语句:
SELECT
s._ts,
s.symbol,
s.last_price,
se.bs_flag
FROM
stock_md_lv1.snap AS s
LEFT JOIN stock_md_lv1.snap_ext AS se ON s._ts = se.ts
AND s.symbol = se.symbol
WHERE
s.symbol = '600006.SH'
ORDER BY s._ts DESC LIMIT 20;
【遇到的问题:问题现象及影响】
通过left join超表关联查询结果返回很慢,但注释掉join,只查快照表或只查快照扩展表就很快。
快照表目前大概3000万条记录,快照扩展表大概1000万条记录
【资源配置】
8核12G内存
【报错完整截图】

