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数据库每一次数据库增删改查都会开启一次事务,所以针对多条插入情况,要在循环外面显示调用事务来提高程序速度。
SqlLite提高批量插入速度的方法及原因分析的更多相关文章
- Mysql批量插入返回Id错乱(原因分析)
在项目中经常会有如下场景: 往数据库中批量插入一批数据后,需要知道哪些插入成功,哪些插入失败了. 这时候往往会有两种思路,一个是在插入之前判断相同的记录是否存在,过滤掉重复的数据:另外一种就是边插入边 ...
- 提高java反射速度的方法method.setAccessible(true)
转载:http://huoyanyanyi10.iteye.com/blog/1317614 提高java反射速度的方法method.setAccessible(true) package com.c ...
- sqlserver 下三种批量插入数据的方法
本文将介绍三种批量插入数据的方法,需要的朋友可以参考下 本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源 ...
- MySQL批量插入大量数据方法
在MySQL数据库中,如果要插入上百万级的记录,用普通的insert into来操作非常不现实,速度慢人力成本高,推荐使用Load Data或存储过程来导入数据,我总结了一些方法分享如下,主要基于My ...
- python使用MySQLdb向mySQL批量插入数据的方法
该功能通过调用mySQLdb python库中的 cursor.executemany()函数完成批量处理. 今天用这个函数完成了批量插入 例程: def test_insertDB(options) ...
- .net批量插入数据库,SqlBulkCopy方法
/// <summary> /// 把数据插入LessonQuestion表 /// </summary> /// <param name="lessontit ...
- [JDBC]批量提交插入语句以提高数据插入速度(效率提升不明显)
// Initialize conn&stmt Connection conn=null; Statement stmt=null; ... conn=dataSource.getConnec ...
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...
- 在 SQL 中 快速 批量 插入数据的方法
方法1:逐条执行,速度慢. INSERT INTO testimport (name, message) VALUES ('testname', 'jfksdfkdsfjksadljfkdsfjsdl ...
随机推荐
- sql server使用杂记(二)
存储过程CREATE PROCEDURE [dbo].[getprofitandloss]@agentNo varchar(10),@o0 varchar(30),@source varchar(30 ...
- RDS MySQL 表上 Metadata lock 的产生和处理
https://help.aliyun.com/knowledge_detail/41723.html?spm=5176.7841698.2.18.vNfPM3
- [Python]croppic 裁剪图片的Python后台实现
import cStringIO import io import base64 from PIL import Image, ImageTk def img_crop_to_file(request ...
- CSS Display属性与盒模型
由于HTML流式文档的特性,页面布局往往是新手最为头疼的问题之中的一个. 每一个HTML元素都会渲染为一个Box,可分为inline Box和block Box. 依据display属性的不同.Box ...
- iOS开发使用Unwind Segue进行返回
我们在之前的一篇博客中谈到怎样使用dismissViewControllerAnimation()的方法在iOS中返回,如今我们有一个更为方便的方法来实现界面跳转之后的返回操作.使用的是Unwind ...
- AppFuse 3常见问题与解决方法
非常长一段时间没做SSH项目了.近期抽出时间看了一下升级到3.x的appfuse,对新版本号使用过程中出现的一些问题进行了排查.汇总例如以下.以备后用.本文原文出处: http://blog.csdn ...
- C语言函数--H
函数名: harderr 功 能: 建立一个硬件错误处理程序 用 法: void harderr(int (*fptr)()); 程序例: /*This program will trap disk ...
- HDU 4405 Aeroplane chess (概率DP求期望)
题意:有一个n个点的飞行棋,问从0点掷骰子(1~6)走到n点须要步数的期望 当中有m个跳跃a,b表示走到a点能够直接跳到b点. dp[ i ]表示从i点走到n点的期望,在正常情况下i点能够到走到i+1 ...
- php file_get_contents遇到https的处理办法
最近调整了文件上传后的资源路径,导致pageOffice在线编辑功能无法正常使用,每一次打开文件都报错:该文件为0字节.仔细看了一下程序,整理逻辑流程如下图: 增加日志后发现,保存在服务器路径下的该条 ...
- PHP中JSON的应用
文章来源:PHP开发学习门户 地址: http://www.phpthinking.com/archives/513 互联网的今天,AJAX已经不是什么陌生的词汇了.说起AJAX,可能会马上想起因R ...