我有一个数据库,该数据库的表没有行号或主键。它仅具有两列时间戳记和值。两个值都是双精度。时间戳按升序排序。
是否可以告诉sqlite时间戳已排序,以便对时间戳查询进行二进制搜索?如果没有,有没有一种方法可以简单地获取查询结果的行索引,并使用该行索引进行查询以加快速度?
答案 0 :(得分:1)
SQL表表示无序集。没有订购。
SQL提供了索引,这些索引的行为通常与您描述的完全一样。因此,您想要:
create index idx_t_timestamp_value on t(timestamp, value);
此查询将最适合where
子句,例如:
where t.timestamp = ?
请注意,索引是自动使用的。另外,它占用了额外的存储空间(如果碰巧是个问题)。