2

在创建了我的第一个 SQLite 数据库以在 Android 应用程序中使用后,我发现它非常需要在几次“删除表”操作等之后进行压缩。然后在阅读了一些 SQLite 文档之后,它理解了为什么 - 这与大多数数据库不同, SQLite 使用可变长度记录来非常有效地存储数据。但这向我表明,在日常使用中,它需要一直压缩以保持最佳空间效率——尤其是在内部存储器非常宝贵的 Android 设备上。

那么,一旦将 Android 应用程序部署到设备上,这是否可以通过编程方式完成?经常这样做是常见的做法还是明智的做法?我问这个是因为我不知道 Android 设备的内部存储器是什么类型的内存 - 如果它是像 SD 卡这样的闪存,那么不断更改数据库(或实际上是任何文件)对它的使用寿命没有好处,会它不是?

4

1 回答 1

1

稍后插入的任何新数据都会重用释放的空间。(这与变长记录无关。)

如果您已经删除了大量数据并且知道空闲空间在不久的将来不会被重新使用,您可以执行VACUUM命令。

经常这样做可能会影响闪存的使用寿命。但是,如果您经常这样做,您会经常使用数据库文件中的空间,然后再释放它,因此仅压缩文件以使其稍后扩展是没有意义的。因此,闪存寿命考虑与何时执行 VACUUM 的问题无关。

于 2013-06-16T12:48:55.530 回答