Android,SQLite:在while子句中插入数据非常慢

Android,SQLite:在while子句中插入数据非常慢,第1张

概述在问题的底部解决问题 我有一个FTP服务器,上面有超过3,000张图片,我将图片名称保存到ArrayList.在此之后,我想将它们从arraylist保存到数据库,这需要非常非常非常的时间!看到: 同 FTPFile[] files = ftpClient.listFiles(); for (FTPFile file : files) { imageNam 在问题的底部解决问题

我有一个FTP服务器,上面有超过3,000张图片,我将图片名称保存到ArrayList.在此之后,我想将它们从arrayList保存到数据库,这需要非常非常非常的时间!看到:

FTPfile[] files = ftpClIEnt.Listfiles();        for (FTPfile file : files) {            imagenames.add(file.getname());        }

我得到所有这些文件的列表并将它们保存到ArrayList imagenames中.
这非常快,不需要超过1 – 最多2秒.

现在我想把这个数组向后写到我的sqlite数据库.
当我这样做时,需要花费很长时间才能完成!我等了2分多钟……

int i = imagenames.size() - 1;        int q = 0;        while(i >= 0){                String insert_arrayList = "INSERT INTO ARRAYList (STRING) VALUES ('"+imagenames.get(q)+"')";                db.execsql(insert_arrayList);            i--;            q++;        }

那么我怎样才能加快插入速度?

提前致谢!

解决方案:(从2分钟到不到3秒;))

FTPfile[] files = ftpClIEnt.Listfiles();        insert_arrayList = "";        ContentValues con = new ContentValues();        for (FTPfile file : files) {            imageUrls.add("http://192.168.99.104/GetThePicture/thumbs/"+file.getname());        }        int i = imageUrls.size() - 1;        int q = 0;        db.beginTransaction();        try{            while(i >= 0){                String insert_arrayList = "INSERT INTO ARRAYList (STRING) VALUES ('"+imageUrls.get(q)+"')";                db.execsql(insert_arrayList);                i--;                q++;            }            db.setTransactionSuccessful();        } catch(Exception e){        } finally {            db.endTransaction();        }
解决方法 我建议按照以下帖子中的说明进行批量插入:

Android SQLite database: slow insertion

它为您提供了多个示例.就个人而言,我注意到sqlite插入非常慢,而对于3000插入,其正常需要很长时间,除非你进行批量插入.

因此,想法与发布的其他海报相同,即在一次交易中完成所有 *** 作:

db.beginTransaction();  for (entry : listofEntrIEs) {  db.insert(entry);}db.setTransactionSuccessful();db.endTransaction();
总结

以上是内存溢出为你收集整理的Android,SQLite:在while子句中插入数据非常慢全部内容,希望文章能够帮你解决Android,SQLite:在while子句中插入数据非常慢所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1122961.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存