【问题标题】:Android Database Size Wont Decrease On HTC ThunderboltHTC Thunderbolt 上的 Android 数据库大小不会减少
【发布时间】:2011-05-24 18:45:31
【问题描述】:

更新:db-wal 文件太大了。是什么原因以及如何限制 sqlite 日志记录文件的大小?

我正在使用 SQLiteOpenHelper。当 onUpgrade 发生时,我将删除我的应用程序存在的每个表。在 droid 上,当我使用设置应用程序查看应用程序数据大小时,您可以看到数据大小按应有的方式减小。但是使用 HTC Thunderbolt,数据大小并没有减少。更糟糕的是,当您再次开始使用我的应用程序时,Thunderbolt 的数据库会继续增长。当我升级数据库版本时,似乎数据库总是会在 Thunderbolt 上增长。

我已经确认我只使用了一个同名的数据库,并且在我删除表之前数据库中有数据。我希望在 Thunderbolt 上看到与在 droid 上相同的行为。有什么方法可以以编程方式清除设备的所有数据?这并不理想,但总比让 Thunderbolt 的数据大小一直增长要好。

【问题讨论】:

  • 如果可以的话,从设备上复制数据库文件,并检查它是否正常。
  • 您可以试试VACUUM 语句,看看它是否有帮助:sqlite.org/lang_vacuum.html
  • VACUUM 似乎是个好主意。但是id没有用。也没有添加 WAL 检查点。

标签: android sql sqlite


【解决方案1】:

如果您使用的是 SQLiteOpenHelper,则需要在应用程序结束时调用 close。 api 文档提到你不需要在它打开的所有 SQLiteDatabase 实例上调用 close,但你仍然必须在 Helper 上调用 close,因为它缓存和跟踪所有打开的 SQLiteDatabase 实例。在不调用 close 的情况下,对于 getWriteableDatabase 和 getReadableDatabase 返回的每个不同实例,wal 文件将继续增长。

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    相关资源
    最近更新 更多