时序数据

分类

MySQL 时序数据优化

背景 项目刚开始数据库选型错了,采用了MySQL来保存时序数据,在不改动前后端源码的情况下,尽量采用“插件”的方式优化。 假设传感器表: CREATE TABLE sensor_data ( id BIGINT AUTO_INCREMENT PRIMARY KEY, device_id INT, channel INT, value DOUBLE, peak DOUBLE, create_time DATETIME(3) ); 数据: 设备1 每秒采集一次 每天约86400条 一年约3153万条 一、增加索引(优先级最高) 1.1 判断当前索引 先看: SHOW INDEX FROM sensor_data; 例如: Key_name Column_name PRIMARY id 只有主键,没有时间和设备索引。 1.2 增加组合索引 你的查询一般类似: SELECT * FROM sensor_data WHERE device_id=100 AND create_time BETWEEN '2026-08-01' AND '2026-08-02'; 增加: ALTER TABLE sensor_data ADD INDEX idx_device_time ( device_id, create_time ); 1.3 为什么顺序是 device,time? 错误: (create_time,device_id) 因为: 查询: ...