Как просмотреть базу данных SQLite в памяти с помощью инструмента командной строки sqlite3 - PullRequest
6 голосов
/ 01 июля 2011

Есть ли способ загрузить всю базу данных SQLite в память для более быстрых результатов, используя инструмент CLI sqlite3?Спасибо!

Ответы [ 2 ]

4 голосов
/ 01 июля 2011

Я не уверен в том, чего вы пытаетесь достичь, но у меня есть две идеи:

1 - Скопируйте все из вашей базы данных в какую-нибудь прикрепленную в базе данных память.Эта ссылка расскажет вам, как подключить базу данных в памяти: http://www.sqlite.org/lang_attach.html

2 - Увеличьте размер кэша, сохраните транзакции в памяти и сохраните «временное хранилище» в памяти: http://www.sqlite.org/pragma.html#pragma_cache_sizehttp://www.sqlite.org/pragma.html#pragma_journal_mode http://www.sqlite.org/pragma.html#pragma_temp_store

2 голосов
/ 02 июля 2011

В этой статье приведен хороший пример, а именно:

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;

Однако я был немного разочарован, поскольку улучшения в скорости, на которые я надеялся, не были достигнуты. Я думаю Я не одинок . Набор данных, который я пробовал, составляет> 300 МБ, что намного превышает размер кэша страниц по умолчанию, указанный там, поэтому вы можете себе представить, что загрузка всей базы данных в ОЗУ даст заметные результаты, но на самом деле это не так. Какие-нибудь мысли?

...