范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

分享一个SQLite性能优化实例

  最早接触 iOS 开发了解到的第一个缓存数据库就是 SQLite,后面一直也以 SQLite 作为中坚力量使用,以前没有接触到比较大量数据的读写,所以在性能优化方面关注不多,这次对一个特定场景的较多数据批量读写做了一个性能优化,使性能提高了十倍。
  大致应用场景是这样:
  每次程序启动会从服务器拉取一些数据,对本地数据库两个表进行同步更新,不存在就写入,存在就更新其字段。数据少的时候几十条,多的上千条。
  由于缓存的数据可能会存在异步同时读写,所以做了一个后台同步队列,所有的缓存数据库操作都在这个队列里面,然后我监控了一下写数据库的关键代码执行耗时,一千条数据更新到数据库就能耗时 30 秒之久,磁盘写入在 1.5M/s 浮动, 虽然没有卡主线程,这个消耗即使在后台也是不可容忍的。
  核心的数据库操作大概是这样的 for 1000 : {   Select -> Update Or Insert   Select -> Update Or Insert   }
  由于牵涉到两张表,所以会有两次,经过测试,Select 一次几乎没有多少消息,可是 Update 或者 Insert ( [FMDatabaseQueue executeUpdate:] ) 就消耗大了,因为会写入磁盘,然后想到是不是可以把所有的 SQL 语句拼接起来,最后只想一次;再后来想到 SQLite 不是有事务 ( Transaction ) 嘛,于是尝试了一下利用 FMDB 的事务操作,在循环开始前 [db beginTransaction] ,循环结束 [db commit],包起来就行了。
  增加事务之后的大概逻辑: beginTransaction   for 1000 : {   Select -> Update Or Insert   Select -> Update Or Insert   }   commit
  测试效果非常好,整个耗时从 30 秒下降到了2.8 秒左右,仅仅增加了两行代码。
  总结:
  踩过的坑,走过的坎,都是以后的经验
  虽然利用事务取巧来提高了性能,但是这样做其实并不安全,好在所属场景对这部分数据绝对一致要求不是太高。
  模拟器和真机有时候测试并不能重现同一个问题,因为所属架构、CPU、硬盘都不一样,所以性能测试最好还是以真机为准。该问题测试的时候在模拟器上很多问题都没有,因为硬盘比真机读写速度要高,所以避免了很多问题,测试的时候也就没有发现。
  数据库设计设计的时候得多考虑考虑,多想想以后怎么扩展,怎么升级,读写的时候性能怎么样。
  分享一个SQLite 性能优化实例 | 《Linux就该这么学》 (linuxprobe.com)

Linux笔记文件及目录管理命令之前分享的Cygwin是一个在windows平台上运行的Linux(类UNIX)模拟环境(关于Cygwin的介绍,可移步至往期笔记Cygwin的安装及使用(Windows下体验Li静态链接与动态链接什么是链接?对于初学C语言的朋友,可能对链接这个概念有点陌生,这里简单介绍一下。我们的C代码编译生成可执行程序会经过如下过程链接就是把目标文件与一些库文件生成可执行文件的一个过程。Cygwin的安装及使用(Windows下体验Linux环境)前言若要使用Linux环境,可以把Linux操作系统装在真机上,也可以把Linux操作系统安装在虚拟机上(如VMware)。本文介绍除了这两种方法之外的第三种可以使用Linux环境C语言笔记运算符与运算符接上篇笔记我们分享的是RTT的PIN设备驱动RTThread笔记IO设备模型及PIN设备,其中用到PIN驱动框架中的pinmode函数来设置引脚的模式voidrtpinmode(rsocket应用基于C语言的TCP天气客户端的实现一前言上一篇笔记分享了TCPUDP通信总结,这一篇分享一个用C语言写的基于TCP的一个HTTP天气客户端的实现,这个一个控制台应用程序,最终的界面如下二天气客户端实现的要点首先,需Linux笔记系统目录结构前言在Linux或Unix操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。文件系统的最顶层是由根目录开始的,系统使用来表示根目录。在根目录之下的既可以是目录STM32的map文件学习笔记前言前几个月针对公司自己的芯片写了个程序,这个程序有个硬性要求,就是能用的FLASH空间只有4KB,之前已经写得差不多了,最终占用空间3。6KB。这不,最近又得加需求,还剩一点点FC程序的编译过程1前言如果你使用的是集成开发环境,那么你点击编译按钮就可生成可执行文件,然后点击运行即可运行。那么,你知道从源代码到可执行文件经历了哪些过程吗。仅仅是编译?下面以windows环境定格瞬间,经典传世徕卡M35mmf2AA镜头发布徕卡M系列镜头迎来新成员徕卡APOSummicronM35f2ASPH。。徕卡APOSummicronM35f2ASPH。拥有M系列中最短的对焦距离,清晰锐利的成像,柔美的焦外画质向经典致敬徕卡M50f1。2ASPH。镜头测评徕卡NOCTILUXM50f1。2ASPH。镜头黑色全球限量1800个银色全球限量100个初版Noctilux50f1。2发布于1966年,至1975年停产。这款标志性镜头经久不衰摄影如何体现做减法的艺术?摄影HengkiKoentjoro器材哈苏X1D50cXCD45mm构图是摄影的基础而摄影也是做减法的艺术最简单的技巧最简单的内容最简约的构图往往能给人惊喜的效果为什么摄影要做减法
CSSfilter生成不规则边框之前做过很多特殊的布局,比如在这两篇文章CSS实现优惠券的技巧(juejin。cn)1CSS实现支持渐变的提示框(tooltips)(juejin。cn)2,如下但是一直有一个痛点风雨无阻,安全守护,试用小米室外摄像机在住的地方的的西侧有个空地,经常有很多外面的车没有经过同意就停进来,有时候家里的电瓶车也停在外面,因为是开放式的空地,也担心夜间电瓶车被偷了电瓶,所以一直想给这区域弄个监控,不过看鲸闻早报小米MIX4亮相微软SurfaceDuo2泄露8月10日鲸闻早报导读小米MIX4亮相屏下摄像头骁龙888Plus120w快充小米首款高端音箱桌面上的音乐厅圆筒式设计支持灯效微软SurfaceDuo2泄露后置三摄磨砂玻璃黑白两色3399元起!2021年高性价比的轻薄本有哪些?对于职场办公人士来讲,入手一台轻薄本就是一个不错的选择,它既能满足旅途出差携带的要求,同时也能满足工作娱乐的需求。对此,笔者为大家简单列举五款2021年推荐入手的轻薄笔记本,希望对2021年入手TNT生态它能给通通带来多少的生产力?悠闲的傍晚,数码博主通通再次上线今天通通要和大家一起聊聊近期入手的坚果R2手机以及TNTGo有线版。坚果R2手机于去年发布,采用骁龙865芯片,搭载基于Android深度定制的Sm坚果P3S怎么样?用户体验过的都说差最近,坚果投影发布了新品坚果P3S投影仪,坚果投影仪P系列定位为便携式投影仪,受到了众多年轻人的喜欢。坚果P3S依旧延续了P3的保温杯设计,延续上一代产品坚果P3转轴功能,使得机身什么是物联网大数据?在生活中,比较常见的是互联网大数据,其实还有一种大数据与物联网结合起来的物联网大数据,大家知道什么是物联网大数据吗?什么是物联网?IOT全称为InternetofThings,翻译Python小白的数学建模课20。网络流优化案例在实际工作和数模竞赛中,网络最大流问题最小费用流问题和最小费用最大流问题都有很多延伸和推广的应用。本文介绍了常见的网络最大流问题最小费用流问题的应用与推广,及其解题方法。本文选择多起火原因未知,特斯拉储能系统发生爆燃引发安全担忧近日,有媒体报道,位于澳大利亚维多利亚州的特斯拉Megapack储能系统发生爆燃,现场有明火,并且烟雾弥漫。虽然起火原因尚不清楚,但是这个事件不由得让人想起特斯拉频频出现的安全问题国家计算机病毒应急处理中心监测发现十四款违法移动应用原标题国家计算机病毒应急处理中心监测发现十四款违法移动应用国家计算机病毒应急处理中心近期通过互联网监测发现14款移动应用存在隐私不合规行为,违反网络安全法相关规定,涉嫌超范围采集个国家计算机病毒应急处理中心发现14款App超范围采集个人隐私信息新华社天津8月9日电(记者张建新)国家计算机病毒应急处理中心近期通过互联网监测发现14款移动应用存在隐私不合规行为,违反网络安全法相关规定,涉嫌超范围采集个人隐私信息。1App中无