Есть ли какие-либо недостатки в очистке баз данных sqlite? Если нет, то почему приложения не вакуумируют свои базы данных?

3 ответа3

1

Пылесосить базу данных SQLite в основном просто экономит /"компактирует" дисковое пространство - это очень мало влияет на производительность. Большинство приложений не выиграют от очистки, если не удалят большие объемы данных.

1

Вакуумирование воссоздает файл БД из существующего файла, и поэтому для его работы требуется дополнительное дисковое пространство. Это также занимает некоторое время и требует блокировки, чтобы все было согласованно.

Таким образом, люди решили не иметь дело с проблемами блокировки и пространства и позволили БД расти, надеясь, что он не станет слишком большим.

Вы можете сделать auto_vacuum, который не очищает столько, сколько удаляет, но и не блокирует БД ни на какое время.

0

Имейте в виду, что очистка базы данных sqlite может воссоздать столбец _id с новыми идентификаторами. Поэтому, если вы в значительной степени полагаетесь на целостность данных или сопоставление данных на основе _id, убедитесь, что вы можете учесть этот сценарий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .