哪个是检索SQLite中所有项目的最快方法?

时间:2010-06-01 03:46:06

标签: c++ sqlite select acceleration

我在windows上编程,我将我的infors存储到sqlite中。 但是我发现所有项目都有点慢。

我使用以下方式:

select * from XXX;

检索1.7MB中的所有项目SQLite DB大约需要200-400ms。 太慢了。任何人都可以帮忙!
非常感谢!

感谢您的回答!
我必须对数据执行复杂的操作,因此每次打开应用程序时,我都需要从DB读取所有信息。

2 个答案:

答案 0 :(得分:4)

我会尝试以下方法:

  1. 通过运行“ vacuum ”命令
  2. 来清理数据库
  3. SQLite以默认缓存大小2000页开头。 (运行命令“ pragma cache_size ”以确定。每个页面都是512字节,因此看起来你有大约1 MB的缓存,这还不足以包含你的数据库。增加你的缓存通过运行“ pragma default_cache_size = 4000 ”来获得大小。这应该可以获得2 MB的缓存,这足以让您的整个数据库进入缓存。您可以从sqlite3命令行运行这些pragma命令,或者通过你的程序就像是另一个查询一样。
  4. 在您订购的字段上为您的表添加索引。

答案 1 :(得分:1)

你可以通过只选择你想要的那些列来加速它,但是否则什么都不会超过无序选择而没有获得所有数据的where子句。

除此之外,更快的磁盘/ CPU是您唯一的选择。

这是什么类型的硬件?