Есть ли способ загрузить всю базу данных SQLite в память для более быстрого получения результатов с помощью инструмента sqlite3 CLI? Спасибо!
Как просмотреть базу данных SQLite в памяти с помощью инструмента командной строки sqlite3
Ответы (2)
Я не уверен, чего вы пытаетесь достичь здесь, но у меня есть две идеи, чтобы предложить:
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
Эта статья содержит хороший пример, а именно:
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 МБ, что намного превышает размер кэша страницы по умолчанию, указанный там, поэтому вы можете себе представить, что загрузка всей базы данных в ОЗУ даст заметные результаты, но на самом деле это не так. Любые мысли?