美文网首页
android SQL 优化

android SQL 优化

作者: ddsfec | 来源:发表于2020-03-12 21:36 被阅读0次

首先是jdbc 使用的是 SQLiteDatabase

/** * 连接数据库 * @param db * @return */ public static SQLiteDatabase connection(@NotNull String db) { return sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase(db, null); }
然后我这边是读的流文件,考虑到内存大小和文件内容未知
采用读一行插一行
``
/**
* 将文件读成string
*/
private fun readFileAsString(url: String,insert:(s:String) -> String) {
var file =File(url)
if(!file.exists()){//不存在
System.out.println("url")
return
}
loading.show();
var thread =Thread({
System.out.println("线程")
var bufferedReader= BufferedReader(FileReader(file))
var line:String?=null
println("开始"+System.currentTimeMillis())

        sql.beginTransaction()

        while ({line=bufferedReader.readLine();line}()!=null){
            //insert(line.toString())
            var stmt =sql.compileStatement(insert(line.toString()));
            stmt.execute();
            stmt.clearBindings();
          // println("ff"+System.currentTimeMillis())
        }
        println("结束"+System.currentTimeMillis())
        bufferedReader.close()

        sql.setTransactionSuccessful();
        sql.endTransaction();
        if(insert.equals(::import1)){
            var list = dbQuery1()
            runOnUiThread {
                mList.clear()
                mList.addAll(list)
                mAdapter.notifyDataSetChanged()
                dataImportSearchLL.visibility=View.VISIBLE
                loading.dismiss()
            }
        }else if(insert.equals(::import2)){
            var count= dbQuery2()
            System.out.println(count)
            runOnUiThread {
                dataImportJZBNumTv.setText((count/2).toString())
                loading.dismiss()
            }

        }




    })

    thread.start()


}

``
上面代码就是优化事务,可见他每次插入都开关了事务
插入需要用到SQLiteStatement说明这个就是SQLiteDatabase jdbc的封装的这个
SQLiteStatement可以使用mSQLiteStatement.bindString(1, randomName);来替换sql语句中的 ?占位符。毕竟这个就是为了优化插入的嘛,我直接喜欢用拼好的sql

然后优化效果: 插入数据约2000*40条,
优化前22秒
优化后4秒

相关文章

  • android SQL 优化

    首先是jdbc 使用的是 SQLiteDatabase /** * 连接数据库 * @param db * @re...

  • 常用sql优化2019-09-27

    sql优化 sql优化.................................................

  • mysql数据库优化

    1. Mysql优化介绍 1.1 sql优化 a. sql优化分析b. 索引优化c. 常用sql优化d. 常用优化...

  • Mysql 优化

    1.Sql优化 1)sql优化分析2)索引优化3)sql语句优化4)一些常用的技巧优化 (正则、函数) 2.优化数...

  • sql优化的一般策略

    sql 优化的一般策略:索引优化,sql改写,参数优化,优化器 索引优化 以select * from vvsho...

  • SQL语句优化, since 2022-04-22

    (2022.04.22 Fri)SQL语句的优化目的在于提高SQL语句的运行效率。注意SQL优化和数据库优化的区别...

  • 11-mysqlSQL分析

    六星教育 - java-mysql优化1909 SQL优化 所谓SQL优化:基于MySQL的优化器查询规则来优化S...

  • Android优化六:性能优化

    Android优化一:提纲Android优化二:性能检测Android优化三:内存优化Android优化四:App...

  • Android优化三:内存泄漏

    Android优化一:提纲Android优化二:性能检测Android优化三:内存优化Android优化四:App...

  • Android优化大合集一:提纲

    Android优化一:提纲Android优化二:性能检测Android优化三:内存优化Android优化四:App...

网友评论

      本文标题:android SQL 优化

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