Left join查询性能问题

【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内存

【报错完整截图】

做join查询是要慢一些。