如何清理房间数据库?

Sim*_*mon 4 performance android android-room

我如何RoomDatabase为我的应用程序进行 VACUUM?我围绕 Room 构建整个应用程序,在某个时刻,一张大表会定期删除,然后再次填充。

我尝试使用查询创建一个额外的 DAO 接口:

@Dao
public interface GenericDao {
    @Query("VACUUM")
    void vacuum();
}
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

Error:(13, 10) error: UNKNOWN query type is not supported yet. You can use:SELECT, UPDATE, DELETE
Run Code Online (Sandbox Code Playgroud)

有解决方法吗?

基本上我需要的是,一旦我的表完全清空,自动增量就会再次从 1 开始。

我对数据库设计相当陌生,所以请理解这是否违反最佳实践。是的:我用尽了谷歌和我所知道的所有其他平台。

提前谢谢了!

See*_*eef 6

Dao 可以如下所示:

@Dao
public interface RawDao {
    @RawQuery
    int vacuumDb(SupportSQLiteQuery supportSQLiteQuery);
}
Run Code Online (Sandbox Code Playgroud)

像这样运行查询:

rawDao.vacuumDb(new SimpleSQLiteQuery("VACUUM"));
Run Code Online (Sandbox Code Playgroud)