我有一个数据库表:
id INTEGER PRIMARY KEY
, X INTEGER
, Y INTEGER
, Value INTEGER
有1,050,625条记录,我用
来称呼它们SELECT Value
FROM Tablename
我只想要第四列的所有记录。我的函数将这些存储到一个数组中,但获取所有这些数据需要将近五分钟。
是否有更快的方法来获取此数据?
答案 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分钟。 (虽然我认为如果该系统上的磁盘不是那么慢,这可能没有那么大的效果)
但是你可能没有在较小的嵌入式平台上提供这些额外的内存,我不建议像我那样增加它,但对于台式机或笔记本电脑级系统它可以提供很大的帮助。