Выполнение запроса на большой базе данных SQLite в python в первый раз занимает очень много времени - PullRequest
0 голосов
/ 25 февраля 2019

У меня относительно большой дБ sqlite (~ 2 ГБ).Я запускаю простой запрос SELECT, и это занимает примерно 2 минуты.Любой подобный запрос после первого выполнения занимает меньше секунды.

Я сделал несколько Google, и, очевидно, это условие известно как поведение «холодный кэш / теплый кеш».В котором с первой попытки каждый байт физически считывается с жесткого диска (холодного кэша), и это медленная задача.При следующих попытках он просто получает данные из буферов ОЗУ (теплый кеш).

Однако в моем операторе SELECT я просто выбираю несколько таблиц с определенными условиями.Нужно ли sqlite передавать ВСЕ базы данных в ОЗУ перед выполнением какого-либо запроса?Есть ли способ обойти это или это просто так?

Спасибо за любой комментарий

PS Я пробовал VACUUM и ANALYZE, но не улучшил время выполнения.

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