Is there a way to load an e开发者_如何学Cntire SQLite database into memory for faster results, using the sqlite3 CLI tool? Thanks!
I'm not sure of what you are trying to accomplish here, but I have two ideas to propose:
1- Copy everything from your database to some attached in memory database. This link will tell you how to attach an in memory database: http://www.sqlite.org/lang_attach.html
2- Increase your cache size, keep transactions in memory, and keep the "temp store" in memory: 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
This article provides a good example, namely:
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;
However, I was a bit disappointed, since the improvements in speed I was hoping for were not met. I guess I'm not alone. The data set I tried is > 300MB, well beyond the default page cache size given there, so you would imagine that loading the entire database into RAM would yield noticeable results, but wasn't really the case. Any thoghts?
Pass --deserialize
to the sqlite3
CLI tool.
精彩评论