优化SQLite的批量选择语句

时间:2012-01-14 07:03:51

标签: sqlite

我有一个数据库表:

id INTEGER PRIMARY KEY
, X INTEGER
, Y INTEGER
, Value INTEGER

有1,050,625条记录,我用

来称呼它们
SELECT Value
FROM Tablename

我只想要第四列的所有记录。我的函数将这些存储到一个数组中,但获取所有这些数据需要将近五分钟。

是否有更快的方法来获取此数据?

1 个答案:

答案 0 :(得分:0)

通过PRAGMA cache_size=<number of pages>增加sqlite缓存。使用的内存为<number of pages><size of page>。 (可以通过PRAGMA page_size=<size of page>设置)

通过将这些值分别设置为16000和32768(或大约512MB),我能够将这一个程序的批量加载从20分钟缩短到2分钟。 (虽然我认为如果该系统上的磁盘不是那么慢,这可能没有那么大的效果)

但是你可能没有在较小的嵌入式平台上提供这些额外的内存,我不建议像我那样增加它,但对于台式机或笔记本电脑级系统它可以提供很大的帮助。