首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改进返回许多记录的SQLite查询

改进返回许多记录的SQLite查询
EN

Stack Overflow用户
提问于 2016-09-13 05:03:49
回答 1查看 216关注 0票数 0

我有一个在WPF应用程序的SQLite数据库表上执行的查询;这个查询可以返回大量记录(从大约80000条到大约100万条),我在显示之前对这些记录进行了下采样。返回700000条记录大概需要10秒,可以通过某种方式进行优化吗?

WHERE子句按日期时间列筛选记录:

代码语言:javascript
复制
(WHERE CollectedOn > @startTime AND CollectedOn < @endTime)

我选择了表中所有的18列。列数是否会影响查询的执行时间?

谢谢你的评论。我应该再指出几点:

我收集的数据需要在图表中显示;因为我只想显示600个点,所以我的算法从这700000条记录中每隔600个点选择一个点。这可以在一个查询中实现吗?

EN

回答 1

Stack Overflow用户

发布于 2016-09-13 05:22:32

以下是我会考虑的一些事情:

  • 进一步缩小了返回记录的范围(您说过在显示之前对其进行下采样...你能在数据库甚至WHERE子句中进行下采样吗?
  • 你真的需要一次所有的记录吗?也许分页会有所帮助(参见LIMIT and OFFSET)
  • You可以尝试使用索引来加快查询速度。使用EXPLAIN来找出您的查询的确切用途...之后,您可以优化连接和选择(也可以对连接使用索引)。

缩小属性的范围总是一件好事(而不仅仅是返回所有列),但至少对于简单的查询(无子选择),它的影响比使用WHERE子句选择正确的行要小。还可以搜索关于这个问题的“选择”和“投影”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39458756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档