我有以下查询,通过分析需要更多的时间,我想对其进行一些调整。查询的目的是从 Messages 表中获取给定 device_id 的最后 3 小时数据,并按最后接收的消息(时间 desc)对结果进行排序。目前数据库上的复合索引似乎并不理想。是否有任何索引或查询语法更改建议以加快此查询?
消息表结构:
列:
id (auto incremented PK NUMBER(10))
device_id
model_id
state
creation_date (DATE when row was inserted)
time (unix time message was transmitted)
//a bunch of other columns omitted
索引:
id
device_id, model_id, state (composite index)
询问:
select * from messages where device_id='0-12345678' and creation_date > sysdate-3/24 order by time desc