c++ - 在 SQLite 中检索所有项目的最快方法是什么?

标签 c++ performance sqlite select

我在 windows 上编程,我将我的信息存储在 sqlite 中。 但是我发现获取所有项目有点慢。

我正在使用以下方式:

select * from XXX;

检索 1.7MB SQLite 数据库中的所有项目大约需要 200-400 毫秒。 它太慢了。谁能帮忙?
非常感谢!

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

最佳答案

我会尝试以下方法:

  1. 通过运行“vacuum”命令清空您的数据库
  2. SQLite 以 2000 页的默认缓存大小开始。 (运行命令“pragma cache_size”来确定。每页是 512 字节,所以看起来你有大约 1 MByte 的缓存,这不足以容纳你的数据库。增加你的缓存通过运行“pragma default_cache_size=4000”来调整大小。这应该让你有 2 MB 的缓存,这足以让你的整个数据库进入缓存。你可以从 sqlite3 命令行运行这些 pragma 命令,或者通过您的程序,就好像它是另一个查询一样。
  3. 在您用于订购的字段上的表中添加索引。

关于c++ - 在 SQLite 中检索所有项目的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947165/

相关文章:

python - 绑定(bind)参数 0 时出错 - 可能是不受支持的类型。 SQL/Python

iphone - 在哪里可以找到带有示例数据的 iPhone 通讯录?

c++ - 使用 Visual Studio 2008 编译但不使用 g++ 的引用相关问题

c++ - 从我在 C++ 中不拥有的应用程序读取内存(vb.net 中的示例)

c++ - Winsock2 select() 函数 : passing {0, 0} 作为超时参数

c# - 我的数据库连接关闭了吗? (Linq to Sql)

java - 谷歌应用引擎: Poor Performance with JDO + Datastore

c++ - OpenCV 2.4.2 imread 函数导致运行时错误

c++ - 有效修改用作键的集合元素的最安全方法

ruby-on-rails - Gemfile中的更改未反射(reflect)在Gemfile.lock中