Размер базы данных SQLCipher продолжает расти даже после удаления записей из таблицы

Мое приложение для Android использует SQLCipher для шифрования базы данных, в соответствии с требованиями моего проекта мне нужно хранить растровую строку в моей локальной базе данных, которую необходимо удалить из базы данных после успешной загрузки на сервер. Но здесь я столкнулся с очень странной проблемой с SQLCipher, то есть даже после удаления всех строк изображений из таблицы размер базы данных моего приложения не уменьшился, а увеличился. Например, начальный размер моей базы данных составлял 45 КБ. С 30 строками изображений в таблице размер стал 2,91 МБ. А после удаления 30 изображений из таблицы размер увеличился до 3,04 МБ.

Но когда я проделал тот же случай с обычной базой данных SQLite, то есть без шифрования SQLCipher, я получил ожидаемые результаты, т.е. размер базы данных 2,91 был уменьшен до 50 КБ после удаления изображений из таблицы.

Пожалуйста помогите...


person Sonu Singh Bhati    schedule 10.06.2015    source источник


Ответы (1)


после удаления значений используйте

db.execSQL("VACUUM");

причина этого в том, что когда вы удаляете значения из таблицы, значения удаляются, но их ссылки все еще существуют.

person varun    schedule 10.06.2015