2011-07-01 37 views

回答

3

我不知道你正試圖在這裏完成的,但我有兩個想法提出:

1-複製一切從您的數據庫,以某種附屬內存數據庫。此鏈接會告訴你如何在內存數據庫附加的:http://www.sqlite.org/lang_attach.html

2 - 增加你的緩存大小,保持事務在內存中,並保持「臨時店」內存: http://www.sqlite.org/pragma.html#pragma_cache_size http://www.sqlite.org/pragma.html#pragma_journal_mode http://www.sqlite.org/pragma.html#pragma_temp_store

1

This article提供了一個很好的例子,即:

sqlite> attach database ':memory:' as mydb; 
sqlite> .schema 
CREATE TABLE log(ts,msg TEXT); 
sqlite> create table mydb.log as select * from log; 
sqlite> select * from mydb.log order by ts desc limit 5; 

不過,我有點失望,因爲在速度的改善,我希望沒有得到滿足。我猜I'm not alone。我嘗試的數據集大於300MB,遠遠超出了給定的默認頁面緩存大小,因此您可以想象將整個數據庫加載到RAM中會產生顯着的結果,但實際情況並非如此。任何thoghts?

+0

您需要描述您嘗試獲得哪些改進...聽起來像是您需要定義一些索引並確保它們按預期使用。如果您發佈更多信息,例如表格的結構和需要改進的SQL,或許我或其他人可以提供幫助。 – 2011-07-03 09:04:07

相關問題