7

有没有办法使用 sqlite3 CLI 工具将整个 SQLite 数据库加载到内存中以获得更快的结果?谢谢!

4

2 回答 2

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

于 2011-07-01T08:40:50.563 回答
3

这篇文章提供了一个很好的例子,即:

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;

然而,我有点失望,因为我希望的速度改进没有得到满足。我想我并不孤单。我尝试的数据集大于 300MB,远远超出了那里给出的默认页面缓存大小,因此您可以想象将整个数据库加载到 RAM 中会产生明显的结果,但事实并非如此。有什么想法吗?

于 2011-07-01T20:24:33.843 回答