2012-01-14 93 views
0

我有一个数据库表:优化大容量Select语句SQLite的

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

有1050625条记录,我打电话给他们使用

SELECT Value 
FROM Tablename 

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

是否有快速的方式来获得这些数据?

回答

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分钟。 (虽然我认为,如果系统上的磁盘是不是这么慢,这可能不会有尽可能多的影响)

,但你可能不会有较小的嵌入式平台上提供这种额外的内存,我不建议增加它和我在那些上做的一样多,但对于桌面或笔记本电脑级别的系统,它可以提供很大的帮助。