综合对比之后,决定采用SQLite数据库存储计算结果文件。SQLite中的插入是较为耗时的,不同的插入方式所花费的时间可能会有天壤之别。几种插入方式可参考博客http://www.cnblogs.com/5211314jackrose/p/5817764.htmlSQLite应用之实例代码,本文对几种方法进行了时间上的测试。
本人电脑为win7的64位操作系统,32g内存4核处理器,为了一般性,链接的SQLite3.dll为32位的。
测试用例为创建一个表CREATE TABLE tableName ( id INT PRIMARY KEY, x REAL, y REAL, z REAL),并插入点的3个方向的坐标INSERT INTO tableName VALUES( i, 0.0, 0.0, 0)。不断调整点的数量,从100到1000000,测试插入操作所花费的时间,测试结果如下表所示。
结果分析如下。
1、基本插入和绑定插入耗时基本一致,并且在插入100个点的情况下就已经耗时5秒左右,基本处于不可接受的状态。二者耗时一致的原因可能是每个插入语句都会开关文件,耗费大量的时间,绑定所节省下来的时间相对开关文件所耗费的时间来说可以忽略不计。
2、当点的数量低于1000个时,事务插入和事务绑定插入耗时相近,随着点的增多,事务绑定明显快于事务插入,并且快到将近10倍。较快的原因应该是绑定的方法减少了SQL语句编译的时间,随着点的增多,优势更加明显。
至于查询的时间,对于SQL来说,查询的速度是非常之快的,如下图所示。

转载于:https://www.cnblogs.com/ljy339/p/7507079.html

SQLite不同插入方法的效率对比测试相关推荐

  1. [转载] python四种列表的插入方法及其效率

    参考链接: Python list insert() # coding:utf-8 from timeit import timeit def count_append(): lists = [] f ...

  2. SQLite批量插入效率

    一.循环单条数据插入 SQLite插入单条数据效率并不高,原因是: Because it does not have a central server to coordinate access, SQ ...

  3. SQLITE高速插入数据

    SQLITE数据库在写入数据时,写入数据库的速度非常重要,如果写入的速度慢,有大量数据待写入时,一是会造成程序卡顿,二是数据写入会失败,数据缺失. 传统的往数据库里插入数据是执行一条SQL语句,多条数 ...

  4. Sqlite大批量导入数据提高效率的几种方式

    前言 SQLite数据库由于其简单.灵活.轻量.开源,已经被越来越多的被应用到中小型应用中.甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作.因此我最近编写有关遥感数据处理的程序的时候, ...

  5. android sqlite批量操作,Android: SQLite批量插入数据的最佳实践

    大家都知道,Android里数据库用的是SQLite.在实际开发过程中,我们有时候会遇到批量插入数据的场景.这篇文章给大家分享一个小技巧,让批量插入数据达到最快的目的. 首先,我先创建一个Table, ...

  6. python连接sqlite数据库的代码_Python3实现连接SQLite数据库的方法

    本文实例讲述了Python3实现连接SQLite数据库的方法,对于Python的学习有不错的参考借鉴价值.分享给大家供大家参考之用.具体方法如下: 实例代码如下: import sqlite3 db ...

  7. python对sqlite增删改查_Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】...

    本文实例讲述了python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的 ...

  8. SQLite解决插入大量数据速度慢的问题

    SQLite解决插入大量数据速度慢的问题 背景 在重构公司项目中发现,公司以前代码中将大量数据插入SQLite数据库,速度非常慢,几千条居然需要将近1分钟: 解决方法 知识背景 事务(Transact ...

  9. MyBatis插入大量数据效率对比:foreach、SqlSession、sql三种方式批量插入

    用mybatis插入数据执行效率对比,对比三种方式(测试数据库为MySQL), 使用 SqlSessionFactory,每一批数据执行一次提交 使用mybatis-plus框架的insert方法,f ...

  10. php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析

    PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

最新文章

  1. Renascence架构原理——遗传规划算法
  2. day3_python学习笔记_chapter5_数字
  3. AWS昨日突发大规模故障,官方称受施工方挖断光纤影响
  4. 中国厂商加速5G前瞻性部署
  5. python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...
  6. 计算机二级ppt为客户制作演示文稿,计算机二级ppt真题:制作介绍北京ppt
  7. linux7 telnet乱码,CentOS7安装配置telnet-server
  8. 火星上首座虚拟房屋以超过50万美元价格售出
  9. vue前端项目中excel文件下载
  10. ASM:《X86汇编语言-从实模式到保护模式》第8章:实模式下硬盘的访问,程序重定位和加载...
  11. 两种方式设置单元格的下划线
  12. 小白都能理解的FTRL
  13. 物流公司货运配送管理系统设计
  14. 各地的磁倾角_中国各地磁偏角
  15. 首席翻译的英语学习方法
  16. java.util.ConcurrentModificationException: null at java.util.ArrayList$Itr.checkForComodification(A
  17. 前后端请求设置签名验证,提升接口安全
  18. orcad基础全操作(直流分析,交流分析,瞬态分析,静态工作点,噪声分析)
  19. background图片叠加_css怎么让两张图片叠加,不用background只用img叠加
  20. JS基础——选项卡列表显示隐藏缩略图(函数传参)

热门文章

  1. H2_Database 概述、下载与安装、及使用入门
  2. 3)Thymeleaf th:* 设置/修改属性值详解
  3. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-3.在线教育站点需求分析和架构设计...
  4. 第二把数独游戏 代码
  5. vim编辑器初级(一)
  6. jq方法中 $(window).load() 与 $(document).ready() 的区别
  7. 《代码大全》学习摘要(五)软件构建中的设计(下)
  8. BZOJ 1015: [JSOI2008]星球大战starwar 并查集
  9. ASP.NET MVC3 RenderPartial 传入空Model时出现字典类型错误
  10. 常用JS验证函数总结