我正在开发一个应用程序。在这里我使用sqlite
数据库。
我第一次从资产中获取数据然后插入数据库。从第二次起,我从数据库中获取数据。
但第一次我的申请很慢。最后我的申请太慢了。我的问题是,当我们在应用中使用sqlite
时,应用会变慢吗?以及我们可以为这类问题做些什么。
请给我一些建议。
答案 0 :(得分:1)
您用于读取XML文件的解析器可能工作得非常慢 - 但事实并非如此,因为我可以处理包含7000个条目的XML文件,其中3个实体每个都在大约12秒内添加每个进入DB。
如果它导致强制关闭/等待对话框出现问题,请在单独的线程中运行第一次导入,而不是在UI线程中运行。
另一种解决方案是将数据加载到模拟器上的数据库中,从应用程序目录中获取sqlite文件并将其与应用程序打包,然后只需将文件从资产文件夹移动到DB文件夹:
对于大型数据库,Database Populating Solution,但如果资产文件夹中的数据库小于1mb,则可以简化流程。
答案 1 :(得分:1)
我确实想到的另一件事我忘了提及,当你进行初始插入时,你是否在发现每个记录时对其进行分类?如果是这样,您可能会发现使用交易更快:
db2.beginTransaction();
try
{
// Perform logic loop and perform each insert:
db2.setTransactionSuccessful();
}
finally
{
db2.endTransaction();
}