【发布时间】:2014-02-18 19:12:09
【问题描述】:
我有一个有 1400 行的表。每行都有一个 blob 字段,其中包含 10kb 到 500kb 之间的数据。我需要删除该表。删除表需要 3.5 分钟,删除表需要 3 分钟。这对用户来说太长了。 我怎样才能尽快删除该表? (无需回滚或任何安全措施,只需将其删除即可。)
我已经尝试了以下方法。 1. 设置页面大小:
sqlitedatabase.setPageSize(8000);
sqlitedatabase.execSQL("DROP TABLE IF EXISTS " + sTableName);
2。停用不起作用的日志。
sqlitedatabase.rawQuery("PRAGMA journal_mode=OFF",null);
sqlitedatabase.execSQL("DROP TABLE IF EXISTS " + sTableName);
这对我不起作用。日志日志,我想这需要很多时间,但仍会写入磁盘。
【问题讨论】:
-
如果您将此表放在单独的数据库中,您可以删除数据库文件并重新创建数据库。这应该快于 3 分钟。但是为什么只删除一张桌子需要这么长时间呢?
-
因为我的数据库还有其他不应该删除的填充表。我仍然需要删除原始数据库中的表。
-
我的意思是,你需要这个表和你的其他数据在同一个数据库中吗?如果没有,我说的有效。或者,正如 rutter 所说,您可以使用附加和分离。
-
谢谢。但我需要一个分贝内的所有表。我也想加入表格。我知道这也可以通过附加来实现。但我想这不是很高效,我不想将我的数据分成几个数据库。还是谢谢。
标签: android performance sqlite