zoukankan      html  css  js  c++  java
  • SqlLite提高批量插入速度的方法及原因分析

    (1)-SQLite忽略大小写查询
    大部分数据库在进行字符串比较时,对大小写是不敏感的。但是SQLite却是大小写敏感的。如果想让SQLite忽略大小写,方法如下:
    方法一:使用大小写转换函数LOWER、UPPER
    SELECT * FROM User WHERE LOWER(UserName) = ‘user1′;
    方法二:在进行比较时强制声明不区分大小写
    SELECT * FROM User WHERE UserName = ‘user1′ COLLATE NOCASE;
    方法三:创建表时声明该列不区分大小写
    CREATE TABLE User (UserName NVARCHAR(20) COLLATE NOCASE);
    如果在任何情况下都不需要对大小写敏感,就使用方法三;如果只是少量查询对大小写不敏感,可以用方法二。而方法一用到了函数,可能会影响查询速度,尽量不用

    (2)Pda当时是为什么要先取所有id过来,再下载Asset所有数据?
      因为,数值在传输的时候有大小限制,多了就报错,这个是WebService用的是HTTP协议,数据都是通过文本传输的,就是XML。大量的文本会导致挂掉的。
      所以,必须先取到要下载的数据的ID,再一个一个去获取。
      我们也可以配置每次传输的量,但是那样有风险,比较难把握配置多少不报错。
      非常难控制。
    (3)设置最大的传输数据量。并且用事务的方式一次性处理所有的SQLite操作。SQLite默认是将每次数据库操作都当作一次事务。每次操作都是开启事务执行SQL关闭事务,肯定费时。
    (4)sqlite数据库每一次数据库增删改查都会开启一次事务,所以针对多条插入情况,要在循环外面显示调用事务来提高程序速度。

  • 相关阅读:
    Jmeter----读取excel表中的数据
    Jmeter-----【mac电脑】配置web浏览器的代理抓取请求
    Git----GitHub上传本地文件到git
    Postman----Newman的使用
    Postman----安装Newman
    Postman----设置代理抓取手机上的请求
    postman-----使用CSV和Json文件实现批量接口测试
    【已解决】【Mac】 运行adb提示command not found,需要配置adb环境
    浅析Java中的final关键字
    git branch简单使用
  • 原文地址:https://www.cnblogs.com/turnip/p/10695800.html
Copyright © 2011-2022 走看看