我们需要使用VACUUM的地方

时间:2014-08-05 09:31:06

标签: android sqlite

    databaseInstance.execSQL("PRAGMA auto_vacuum = FULL");

目前我在创建数据库之后和创建数据库表之前使用它。我做了一些与DB的交易,它的大小与所有这些数据是34016字节,然后我删除所有这些数据然后理想情况下数据库大小应该下降,但发生了什么: - 数据被删除,大小增加43232字节。 有什么不对请帮帮我。在此先感谢所有人。

1 个答案:

答案 0 :(得分:1)

documentation说:

  

只有在数据库存储了一些允许将每个数据库页面向后追溯到其引用者的附加信息时,才能进行自动抽真空。因此,必须在创建任何表之前打开自动吸尘。创建表后,无法启用或禁用自动真空。

这有点误导。 "在创建任何表之前"在实际创建数据库之前,实际上应该说""。 您应该在打开新数据库之后,在设置其他任何内容之前,以及在第一个事务开始之前直接执行它。

如果您使用SQLiteOpenHelper,请将其放入onConfigure回调。