首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQLite 批量insert - 怎么加速SQLite的插入操作

2013-07-09 
SQLite 批量insert - 如何加速SQLite的插入操作String sql INSERT INTO table (number, nick) VALUES (

SQLite 批量insert - 如何加速SQLite的插入操作
String sql = "INSERT INTO table (number, nick) VALUES (?, ?)";db.beginTransaction(); SQLiteStatement stmt = db.compileStatement(sql);for (int i = 0; i < values.size(); i++) { stmt.bindString(1, values.get(i).number); stmt.bindString(2, values.get(i).nick); stmt.execute(); stmt.clearBindings();} db.setTransactionSuccessful();db.endTransaction();

?

结合transactions和 compiled statements后, 性能有了巨大的提升: 从71秒到不可置信的5秒! 在Galaxy上的结果更是牛逼: 从478秒到1.5秒!

?

结论:

- 除非你只执行单次的insert, 或者你需要数据立即写入文件系统, 不然的话就用transactions

- 保证你的程序在真机上测试过, 最好是多台机器上测.

- 我上面的性能提升只在Samsung Galaxy S上测过, 不同的机器可能还是会有性能问题.

?

热点排行