如何为TDengine数据表的普通列添加索引?
TDengine普通列索引支持说明
核心结论
- 当前TDengine 2.x、3.x主流版本,暂不支持为普通表的非时间戳、非标签类普通数据列手动创建自定义索引,仅默认对表的第一列时间戳字段自动创建索引。
普通列高效过滤的替代方案
如果你的业务需要对非时间戳字段做高效过滤,可以结合TDengine的原生特性选择适配方案:
- 若待过滤字段为静态属性类字段(例如设备所属分组、采集点位类型等),建议将该字段调整为超级表的标签列,TDengine会自动为所有标签列创建索引,标签条件过滤的查询性能极高,可满足绝大多数场景的过滤需求。
- 若待过滤字段为动态采集的普通数据列,建议优先使用
PREWHERE语法先通过时间维度缩小查询的数据集范围,再匹配普通列的过滤条件,时序场景下该方式的性能表现通常可以满足业务要求;如果是字符串类型普通列,也可以开启TDengine的全文检索能力优化字符串匹配查询效率。 - 若有高频的非时间维度精准查询需求,可在业务侧做适配设计,将高频过滤字段同步到独立的检索组件做索引,配合TDengine的时序查询能力使用。
内容的提问来源于stack exchange,提问作者lsm
相关产品推荐
相关产品推荐

