有没有办法使用sqlite3 CLI工具将整个SQLite数据库加载到内存中以获得更快的结果?谢谢!
答案 0 :(得分:4)
我不确定你在这里想要完成什么,但我有两个想法可以提出:
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 :(得分:2)
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中会产生明显的结果,但事实并非如此。有什么打算?