美文网首页
Android:Sqlite插入大批量数据

Android:Sqlite插入大批量数据

作者: 附庸风雅_ | 来源:发表于2017-08-17 10:38 被阅读0次

假如现在要向Android本地数据库中插入1万条数据。按照一般的想法代码如下:

//假设strings.size() = 10000
    try {
        for (String data : strings) {
            ContentValues contentValues = new ContentValues();
            if(!TextUtils.isEmpty(data)){
                contentValues.put(key, data);
            }
            mDb.insert(table_name, null, contentValues);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        mDb.close();
    }

如上做法可能会花费大概2minute,这是因为每次插入都会创建一次事务。在看看下面这段代码:

//假设strings.size() = 10000
try {
        mDb.beginTransaction();
        for (String data : strings) {
            ContentValues contentValues = new ContentValues();
            if(!TextUtils.isEmpty(data)){
                contentValues.put(key, data);
            }
            mDb.insert(table_name, null, contentValues);
        }
        mDb.setTransactionSuccessful();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        mDb.endTransaction();
        mDb.close();
    }

比第一段多了3行,但插入操作花费的时间只需要4s左右,这是因为我们主动开启了一个事务,所以整个插入操作实在一个事务中完成的,花费的时间也大大的减少了。

相关文章

网友评论

      本文标题:Android:Sqlite插入大批量数据

      本文链接:https://www.haomeiwen.com/subject/ossgrxtx.html