【发布时间】:2012-04-04 15:25:56
【问题描述】:
我在使用 SQLite 中的查询时遇到了一些严重的性能问题。目前,activity_tbl 表中有大约 20000 个条目,activity_data_tbl 表中有大约 40 个条目。我对下面查询中使用的两列都有一个索引,但它似乎对性能没有任何影响。
SELECT a._id, a.start_time + b.length AS time
FROM activity_tbl a INNER JOIN activity_data_tbl b
ON a.activity_data_id = b._data_id
WHERE time > ?
ORDER BY 2
LIMIT 1
如您所见,我选择一列和一个通过将两列相加而创建的值。我想这是导致性能低下的原因,因为如果我只选择 a.start_time 或 b.length,查询会非常快。
你们对我如何优化这个有什么建议吗?
【问题讨论】:
-
您可以发布带有索引的架构 (
.s) 吗? -
两个cmets:不要通过更改标题来标记已回答的问题,而是在以下答案之一旁边打勾(如果答案是您自己的,您可以回复自己的问题并标记答案正确)。此外,针对小的开始时间进行过滤可能不会(取决于数据的“形状”)为您提供与原始查询相同的结果。