美文网首页
Sqlite的性能优化

Sqlite的性能优化

作者: 空空大师丶 | 来源:发表于2017-09-02 10:24 被阅读0次

    比较安卓提供的API 执行insert,query,update,delete与execSql,rawQuery函数执行原生的插入,查询,更新,删除语句操作花费时间进行比较

    数据量小的话,可能时间差不多,但是数量大到一定量的时候,会发现execsql 原生的SQL语句执行要更快.因为安卓提供的API 实际上会拼接成SQL语句在执行插入数据库.所有拼接的过程也需要时间.

    大量数据插入时如何优化?

    测试了下,直接通过for循环insert的话,插入较慢,分析了下Monitor 看见,不断对磁盘进行写入,而且是成高低谷形状.想了下,Web开发的时候可以通过事务插入.在安卓开发也可以.测了下

    db.beginTransaction(); //手动设置开始事务

     try{

     //批量处理操作 

    for(Collection c:colls){ insert(db, c); 

    } db.setTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交。 

    //在setTransactionSuccessful和endTransaction之间不进行任何数据库操作 

    }catch(Exception e){ MyLog.printStackTraceString(e);

     }finally{

     db.endTransaction(); //处理完成

     }

    发现就读写了一次文件,而且写入速度也比之前提升了不少.~~

    相关文章

      网友评论

          本文标题:Sqlite的性能优化

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