можно sqlite загрузить 10M данных в память - PullRequest
18 голосов
/ 02 февраля 2010

Если это возможно, то как?

Я хочу ускорить чтение (не записи) в sqlite

Спасибо

Ответы [ 2 ]

21 голосов
/ 02 февраля 2010

Да.

SQLite загружает данные в память на страницах. Размер страницы по умолчанию составляет 1024 байта. Вы можете изменить размер страницы с помощью этой команды.

PRAGMA page_size = bytes;

Но вы должны сделать это до создания базы данных (или в 3.5.8, вы можете изменить ее, запустив VACUUM после выдачи новой прагмы размера страницы).

Кэш основан на количестве страниц. Размер кэша по умолчанию составляет 2000 страниц. Вы можете изменить его с помощью этой команды.

PRAGMA cache_size = Number-of-pages;

Таким образом, чтобы сохранить 10 МБ данных в памяти, либо увеличьте размер страницы до 5120, либо увеличьте размер кэша до 10000.

Более подробная информация о прагмах здесь .

5 голосов
/ 24 ноября 2017

Обратите внимание, что размер страницы был увеличен до 4096 байт, начиная с версии sqlite 3.12.0

https://www.sqlite.org/pragma.html#pragma_page_size

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...