У меня относительно большой дБ sqlite (~ 2 ГБ).Я запускаю простой запрос SELECT, и это занимает примерно 2 минуты.Любой подобный запрос после первого выполнения занимает меньше секунды.
Я сделал несколько Google, и, очевидно, это условие известно как поведение «холодный кэш / теплый кеш».В котором с первой попытки каждый байт физически считывается с жесткого диска (холодного кэша), и это медленная задача.При следующих попытках он просто получает данные из буферов ОЗУ (теплый кеш).
Однако в моем операторе SELECT я просто выбираю несколько таблиц с определенными условиями.Нужно ли sqlite передавать ВСЕ базы данных в ОЗУ перед выполнением какого-либо запроса?Есть ли способ обойти это или это просто так?
Спасибо за любой комментарий
PS Я пробовал VACUUM и ANALYZE, но не улучшил время выполнения.