SQLite怎么解决插入多条数据速度慢
2013-02-04 10:51
225 查看
今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入1000条记录,居然耗时91秒+!
下面是他发给我的测试代码。我晕~~~~~~
执行一下,耗时1.5 秒。这差距是不是太大了点?
为什么只是简单启用了一个事务会有这么大的差距呢?很简单,SQLite 缺省为每个操作启动一个事务,那么原代码 1000 次插入起码开启了 1000 个事务,"事务开启 + SQL 执行 + 事务关闭" 自然耗费了大量的时间,这也是后面显示启动事务后为什么如此快的原因。其实这是数据库操作的基本常识,大家要紧记,不好的代码效率差的不是一点半点。
下面是他发给我的测试代码。我晕~~~~~~
SQLiteDatabase db = helper.getWritableDatabase(); try { start = System.currentTimeMillis(); db.beginTransaction();//我添加的 for (int i = 0; i < 1000; i++) { bastDao.insert(user, db); } time = System.currentTimeMillis() - start; db.setTransactionSuccessful();//我添加的 } catch (Exception e) { e.printStackTrace(); } finally { db.endTransaction();//我添加的 if (db != null) { db.close(); } }
执行一下,耗时1.5 秒。这差距是不是太大了点?
为什么只是简单启用了一个事务会有这么大的差距呢?很简单,SQLite 缺省为每个操作启动一个事务,那么原代码 1000 次插入起码开启了 1000 个事务,"事务开启 + SQL 执行 + 事务关闭" 自然耗费了大量的时间,这也是后面显示启动事务后为什么如此快的原因。其实这是数据库操作的基本常识,大家要紧记,不好的代码效率差的不是一点半点。
相关文章推荐
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 对比sqlite3_exec 和sqlite3_bind 插入100万行数据的速度 with BEGIN TRANSACTION using C++ and SQLite
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- Sqlite批量插入数据响应速度慢的解决方法
- 提升SQLite数据插入效率低、速度慢的方法
- 【android】批量插入数据提高速度解决
- 提升SQLite数据插入效率低、速度慢的方法
- 使用事务操作SQLite数据批量插入,提高数据批量写入速度,源码讲解
- SQLite,加快插入数据的速度
- 针对Sqlserver大数据量插入速度慢或丢失数据的解决方法
- [转载]提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 怎么解决php调用数据的值或者插入数据库的时候乱码的问题
- 提升SQLite数据插入效率低、速度慢的方法