Мы пытаемся интегрировать SQLite в наше приложение и пытаемся заполнить его как кэш. Мы планируем использовать его как базу данных в памяти. Используя это в первый раз. Наше приложение основано на C ++.
Наше приложение взаимодействует с основной базой данных для извлечения данных и выполняет многочисленные операции. Эти операции, как правило, касаются одной таблицы, которая имеет довольно большой размер.
Мы скопировали эту таблицу в SQLite, и следующие замечания:
Количество полей: 60
Количество записей: 1 000 000
Когда начинается заполнение данными, объем памяти приложения резко возрастает до ~ 1,4 ГБ с 120 МБ. В настоящее время наше приложение находится в состоянии ожидания и не выполняет каких-либо серьезных операций. Но, как правило, после запуска операций запускается использование памяти. Теперь с SQLite, как в Memory DB, и с таким высоким использованием памяти, мы не думаем, что сможем поддерживать эти многочисленные записи.
Когда я создаю БД на диске, размер БД составляет ~ 40 МБ. Но тем не менее использование памяти приложением остается очень высоким.
Q. Есть ли причина для такого высокого использования. Все буферы были очищены и, как было сказано ранее, БД не находится в памяти?
Любая помощь будет принята с благодарностью.
Спасибо и С уважением
Сэчин