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数据库每一次数据库增删改查都会开启一次事务,所以针对多条插入情况,要在循环外面显示调用事务来提高程序速度。

转载于:https://www.cnblogs.com/turnip/p/10695800.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值