2012-01-14 98 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分鐘。 (雖然我認爲,如果系統上的磁盤是不是這麼慢,這可能不會有儘可能多的影響)

,但你可能不會有較小的嵌入式平臺上提供這種額外的內存,我不建議增加它和我在那些上做的一樣多,但對於桌面或筆記本電腦級別的系統,它可以提供很大的幫助。