如何提高android版SQLite数据库的性能
关于stackoverflow,与此主题相关的问题很少,但我没有得到正确的答案。我对平面文件的性能有些怀疑,使用平面文件而不是SQLite是否更好 我获取了Android如何提高android版SQLite数据库的性能,android,android-sqlite,Android,Android Sqlite,关于stackoverflow,与此主题相关的问题很少,但我没有得到正确的答案。我对平面文件的性能有些怀疑,使用平面文件而不是SQLite是否更好 我获取了AndroidSQLite的性能统计数据 我有一个有21列的表的性能统计数据 任何人都可以建议如何减少插入时间 Records Write time in ms Read time in ms 1000 67813 608 1000 66340
SQLite
的性能统计数据
我有一个有21列的表的性能统计数据
任何人都可以建议如何减少插入时间
Records Write time in ms Read time in ms
1000 67813 608
1000 66340 604
1000 64359 609
10000 679837 5159
10000 618062 5110
10000 644638 5729
10000 646878 5890
平面文件
比SQLite
所以,任何人请建议我如何改进SQLite这次的性能
我使用的是使用ContentValues和database close的simple数据库open insert
请告诉我一些如何改进这些统计数据的方法
使用下面的答案后更新了性能统计信息。我仍然希望提高这些性能
Records Writetime in ms Readtime in ms
1000 1645 530
1000 2497 672
1000 3143 610
10000 16356 5243
10000 14006 5122
10000 13158 5002
10000 14828 5234
100000 125525 77622
谢谢我相信您正在使用循环插入1000或10000。
使用事务,它将大大减少写入时间。我已经遇到了这样一个问题,它将我的案例中的写入时间从大约30秒减少到大约不到1秒
看一看
基本上,你应该做的是:
db.beginTransaction();
试一试{
for(int i=0;i
如果你想优化插入时间,就应该发布插入代码。平面文件和SQLite有不同的目标,一个是存储和批量检索,SQLite用于快速检索(大多数情况下比文本文件快)使用事务进行大插入同样,平面文件也很好,但前提是你不需要queries@njzk2是的,我同意你的观点。平面文件只适合读写。我必须在哪里使用插入查询?在这里我不需要在代码中打开数据库和关闭数据库?非常感谢,这确实改善了我的统计数据。你能不能建议我如何用其他方法减少阅读时间?在for循环中执行insert查询。是的,当然你应该打开和关闭数据库。但是关于阅读时间,我不知道如何减少阅读时间,希望我能帮上忙。你的回答帮助了我很多,你可以看到上面的结果