
引言
一、重新认识时序数据表结构
KWDB 的时序数据表采用时间戳+数值字段+标签的三维结构:
CREATE TABLE sensor (
recordedTime timestamptz NOT NULL, -- 时间戳
current FLOAT, -- 电流值
voltage INT -- 电压值
) TAGS (
sensor_id INT NOT NULL, -- 设备唯一标识(标签)
location VARCHAR(10), -- 安装位置(标签)
group_id INT -- 设备分组(标签)
) PRIMARY TAGS (
sensor_id -- 主标签
);复制
其中时间戳记录数据产生时刻,字段列存储动态变化的监测数值,而标签列则承载设备的静态属性。
这种分离式设计带来的直接优势是:当采集 100 万条传感器数据时,设备位置等标签信息仅需存储一次,相比传统结构可减少 99.99% 的冗余数据写入。
二、标签分类与使用策略
2.1 主标签(Primary Tags)
1、定义规则: 每个表必须包含至少1个主标签,且创建后不可修改 2、典型场景: 设备唯一标识(sensor_id)、用户 ID、资产编号等 3、设计建议: - √ 选择离散值高的字段(如自增 ID)
- √ 避免使用可能变更的字段(如手机号)
- √ 控制主标签数量(通常 1-4 个)
-- 创建含复合主标签的表
CREATE TABLE smart_meter (
ts timestamptz NOT NULL,
power_usage FLOAT
) TAGS (
region VARCHAR(6) NOT NULL,
meter_no BIGINT NOT NULL
) PRIMARY TAGS (region, meter_no);复制
2.2 非主标签(Tags)
SQL
-- 动态维护标签示例
ALTER TABLE sensor
ADD TAG firmware_version VARCHAR(20); -- 新增固件版本标签
ALTER TABLE sensor
ALTER TAG firmware_version TYPE VARCHAR(50); -- 修改标签类型
ALTER TABLE sensor
RENAME TAG group_id TO cluster_id; -- 重命名标签
ALTER TABLE sensor
DROP TAG location; -- 删除标签复制
三、索引优化实战
3.1 主标签的 Hash 索引
KWDB 自动为主标签创建 Hash 索引,针对精确查询实现 O(1) 时间复杂度:
SQL
-- 高效查询示例
SELECT * FROM sensor
WHERE sensor_id = 1005;
3.2 非主标签索引策略
对于高频查询的非主标签,建议手动创建索引:
SQL
-- 创建组合索引
CREATE INDEX idx_sensor_group
ON sensor (group_id);
-- 带过滤条件的查询
SELECT * FROM sensor
WHERE group_id = 10;复制
索引选择原则:
• 对查询频率高的标签建索引 • 优先为高筛选率的字段建索引 • 组合索引字段不超过 4 个
四、性能对比测试
我们模拟了 20000 台设备、时间跨度 6 个月、1000万数据量,对比不同方案的性能表现:
测试结果表明,索引优化后,在此场景下查询性能延迟降低 95%。
结语
通过合理运用 KWDB 的标签体系与索引策略,我们成功将某智能制造平台的查询延迟从秒级降至毫秒级。在实际应用中,建议结合业务特点进行标签体系设计,通过持续监控和调优,充分发挥时序数据库的性能优势。

文章转载自KaiwuDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【KWDB 2025 创作者计划】_轻松搞定!KaiwuDB单节点裸机部署(二进制安装包版)
小白学信创²⁰²² ᯤ⁶ᴳ
299次阅读
2025-04-08 17:41:54
云和恩墨钟浪峰:安全生产系列之SQL优化安全操作
墨天轮编辑部
213次阅读
2025-03-31 11:08:20
案例-索引对于并发Insert性能优化测试
布衣
79次阅读
2025-04-09 22:47:23
【KWDB创作者计划】容器赋能KaiwuDB:探索浪潮数据库KWDB2.2.0 实战指南
shunwahⓂ️
69次阅读
2025-04-14 09:24:42
10分钟快速搞定 KWDB 数据库单节点部署
jiayou
64次阅读
2025-04-16 15:13:21
KWDB 2.2.0 版本发布,新增支持纳秒级时间精度、分组窗口函数
KaiwuDB
55次阅读
2025-04-01 18:30:11
119-从is null能否走索引说起
老虎刘谈oracle性能优化
52次阅读
2025-03-25 18:14:39
Oracle数据库常用脚本(八)
hongg
50次阅读
2025-04-02 09:09:23
PX Deq: Execution Msg Oracle数据库并行执行等待事件详解
yuki
48次阅读
2025-03-20 14:47:48
《一文讲透》第6期:揭秘 KWDB 的多模核心技术
KaiwuDB
45次阅读
2025-03-28 15:02:54