目录

使用方面:

效率对比:

批量插入:

查询1000万条


众所周知,sqlite3提供了三种查询数据的接口,分别是 sqlite3_exec,sqlite3_get_table,sqlite3_prepare_v2,这三种在使用和效率上有什么区别呢?

使用方面:

sqlite3_exec 函数,需要传入一个函数指针,每一条查询结果在回调函数函数中取得,当然在C++11基础上还可以使用lambda函数,见下

int retCode = sqlite3_exec(m_sqlite_db, sql_str,[](void *data, int columns , char **field_values, char **column_names)->int{for(int i=0; i<columns ; i++){const char *str = field_values[i];std::string dddd = str ? str : "";}return 0;} , 0, &zErrMsg);

另外两个函数的使用见 sqlite 使用问题总结

效率对比:

前提:单表,表中有16个字段。

批量插入:

这是只对比使用sqlite3_prepare_v2方式批量插入1000万条数据的情况。

在显示开启事务的情况下,批量插入1000万条数据花费92秒,反之在花费了?? 秒(想测试一下,结果等了3个小时没有等到结果),可见批量插入数据时开启显示事务的重要性。

查询1000万条

使用sqlite3_exec  查询花费63秒

使用sqlite3_get_table  查询花费84秒

使用sqlite3_prepare_v2  查询花费61秒

可见查询是效率 sqlite3_prepare_v2 > sqlite3_exec > sqlite3_get_table


凡是过往,即为序章

sqlite 查询效率对比相关推荐

  1. sql 中or与in的查询效率对比

    原文链接:http://blog.chinaunix.net/uid-20639775-id-3416737.html 在网上一直看到的是or和in的效率没啥区别,一直也感觉是这样,前几天刚好在看&l ...

  2. SQL中IN和OR效率对比

    测试结果如下: 第一种情况,ID列为主键的情况,4组测试执行计划一样,执行的时间也基本没有区别. A组or和in的执行时间: or的执行时间为:0.002s     in的执行时间为:0.002s B ...

  3. mysql in union all_MySQL中使用or、in与union all在查询命令下的效率对比_MySQL

    OR.in和union all 查询效率到底哪个快? 网上很多的声音都是说union all 快于 or.in,因为or.in会导致全表扫描,他们给出了很多的实例. 但真的union all真的快于o ...

  4. C++拾取——Linux下实测布隆过滤器(Bloom filter)和unordered_multiset查询效率

    布隆过滤器是一种判定元素是否存在于集合中的方法.其基本原理是使用哈希方法将数据映射到一个很长的向量上.在维基百科上,它被称为"空间效率和查询时间都远远超过一般的算法"的方法.由于它 ...

  5. mongo mysql 条件查询效率_mongodb查询条件对查询效率的影响

    背景和概述 数据状况: mongodb的一个db中存了近2000万记录,有type(字符串).ctime(float,创建时间)等索引参数,记录的自然顺序和ctime的排序是一致的. 查询需求: 从第 ...

  6. Oracle Spatial分区应用研究之一:分区与分表查询性能对比

    1.名词解释 分区:将一张大表在物理上分成多个分区,逻辑上仍然是同一个表名. 分表:将一张大表拆分成多张小表,不同表有不同的表名. 两种数据组织形式的原理图如下: 图 1分表与分区的原理图 2.实验目 ...

  7. NOT IN、JOIN、IS NULL、NOT EXISTS效率对比

    语句一:select count(*) from A where A.a not in (select a from B) 语句二:select count(*) from A left join B ...

  8. 改了一行代码,MySQL查询效率提升了80%,老板奖了我50万

     ⭐前言 优化MySQL数据库是数据库管理员必备的技能,通过不同的优化方式方法来达到提高MySQL数据库性能的目的. MySQL数据库当用户和数据量非常少的情况下,我们就很难判断MySQL数据库性能的 ...

  9. Oracle常用导出导出命令及性能效率对比

    说明 Oracle导入导出命令主要有EXPDP和IMPDP.EXP和IMP,区别如下:EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用.EXPDP和IMPDP是服务端的工具程 ...

最新文章

  1. java基础英语---第二十一天
  2. 解决数据中心管综难题:管线避让的十七个原则!
  3. 硬盘物理序列号修改工具_精品软件:MHDD磁盘坏道扫描工具使用方法图解教程...
  4. AttributeError: 'StatusHandler' object has no attribute 'async_callback'
  5. 30分钟无坑部署K8S单Master集群
  6. fatal: Path ‘XXX‘ is in submodule ‘XXX‘错误(path is in submodule)
  7. 6月30日云栖精选夜读:程序员技术与文艺的PK_来首届阿里巴巴研发效能嘉年华...
  8. 应用发布服务器_Apache Tomcat 10.0.0-M1 发布,开源 Web 应用服务器
  9. mongoose实现批量删除和多id查询的api/方法
  10. 电子元件 —— 继电器
  11. 数据库中的年月日表达
  12. 实时渲染——三种渲染方法介绍
  13. 中兴上网卡 linux,4G网卡中兴MF831移植到linux
  14. PAT日志 1147 Heaps
  15. DOSBox常用快捷键
  16. ❤️解决非线性回归问题的机器学习方法总结:多项式线性模型、广义线性(GAM)模型、回归树模型、支持向量回归(SVR)模型
  17. HBase配置AES加密
  18. 163邮箱申请注册个人,163邮箱付费与免费版有什么区别?
  19. ENVI下的Landsat8图像融合
  20. java关闭scanner_java-如何中断scanner.nextline()调用

热门文章

  1. 10047.GNU Make 使用手册中译版(转)
  2. WebRTC 音视频同步分析
  3. 绿色版软件怎么添加鼠标右键菜单里
  4. 海康威视SDK二次开发通过云台参数设置控制摄像机的位置
  5. 破圈、增长、被加码,集合店能创造美妆行业新风口?
  6. python反素数_可逆素数-随心随性无为而为-51CTO博客
  7. android 斜线 绘制_Android 自定义 斜线进度框 ,雨点式背景
  8. CSS3动画产生圆圈由小变大向外扩散的效果
  9. 激活pytorch环境
  10. SEM数据该如何分析?