Czy istnieje sposób na załadowanie całej bazy danych SQLite do pamięci w celu uzyskania szybszych wyników za pomocą narzędzia CLI sqlite3? Dzięki!Jak przeglądać bazę danych SQLite w pamięci za pomocą narzędzia wiersza poleceń sqlite3
Odpowiedz
Nie jestem pewien, co staramy się osiągnąć tutaj, ale mam dwa pomysły proponujemy:
1- Kopiuj wszystko z bazy danych do niektórych dołączone w bazie pamięci. Ten link powie Ci, jak podłączyć w bazie danych pamięci: http://www.sqlite.org/lang_attach.html
2- zwiększyć rozmiar pamięci podręcznej, należy transakcje w pamięci i zachować „temp” sklep w pamięci: 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 stanowi dobry przykład, a mianowicie:
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;
Jednakże, byłem trochę rozczarowany, gdyż usprawnień w szybkości miałem nadzieję, że nie zostały spełnione. Chyba I'm not alone. Zestaw danych, który wypróbowałem, jest> 300 MB, znacznie powyżej domyślnego rozmiaru pamięci podręcznej strony, więc możesz sobie wyobrazić, że ładowanie całej bazy danych do pamięci RAM przyniesie zauważalne wyniki, ale tak naprawdę nie było. Jakieś thogty?
Musisz opisać, jakie ulepszenia próbujesz uzyskać ... Wygląda na to, że musisz zdefiniować niektóre indeksy i upewnić się, że są używane zgodnie z przeznaczeniem. Jeśli publikujesz więcej informacji, takich jak struktura twoich tabel i SQL, który wymaga poprawy, być może ja lub inni będziemy w stanie Ci pomóc. –