在android中的sqlite中插入5000条记录

在android中的sqlite中插入5000条记录,android,sqlite,Android,Sqlite,我一直在尝试将5000条记录插入sqlite的不同方法,比如在sqlite数据库对象和编译语句上使用execSql和insert方法。在所有情况下,实际插入或替换都是在单个事务中进行的 使用编译语句时,5000条记录的平均插入时间约为3000毫秒。对于insert方法,平均时间大约为4500毫秒,对于execSql,平均时间大约为5000毫秒 我原以为sqlite会快得多。在美国,一台台式计算机在一次交易中平均每秒可以处理50000次插入。尽管我使用的测试设备不是特别强大的Galaxy S3 m

我一直在尝试将5000条记录插入sqlite的不同方法,比如在sqlite数据库对象和编译语句上使用execSql和insert方法。在所有情况下,实际插入或替换都是在单个事务中进行的

使用编译语句时,5000条记录的平均插入时间约为3000毫秒。对于insert方法,平均时间大约为4500毫秒,对于execSql,平均时间大约为5000毫秒

我原以为sqlite会快得多。在美国,一台台式计算机在一次交易中平均每秒可以处理50000次插入。尽管我使用的测试设备不是特别强大的Galaxy S3 mini,但我希望SSD存储能够弥补任何不足,每秒提供20000次插入。唉!!事实似乎并非如此

我是做错了什么,还是这是移动设备可以弥补的最大性能

编辑1


所有记录都有14列,它们是文本和数字的混合体大多数是UUID或URL

如果我没记错的话,插入操作需要很多时间。 也许尝试并发数据库事务不是一个坏选择。以下是我以前写的:

                    db.beginTransaction();
                    while (...) {
                        db.execSQL(...));
                    }
                    db.setTransactionSuccessful();
                    db.endTransaction();

一般来说,台式电脑比手机功能强大得多。移动电话有cpu,时钟速度慢,缓存小,内存量非常有限,移动电话只有几把MB可用,台式机只有几GB可用,内存时钟慢。@Fumu7-没想到差别会这么大@VnyKumar-您的链接给出的答案是我用来创建新线程的3种方法之一,比如AsyncTask然后exec事务。我不知道你说的3种方法是什么,但我认为事务是常见的方式,但这不是并发数据库事务。这只是将语句封装在一个事务中,我实际上是按照上面列出的所有3种方式来执行的:没有真正的代码,不要抱怨。每个人的回答/评论都是猜测,因为你没有显示你的代码。@Fumu7在一个事务中就在这个问题上。