1、数据库性能上

1.1 批量事务插入,提升数据插入的性能

由于sqlite默认每次插入都是事务,需要对文件进行读写,那么减少事务次数就能简书磁盘读写次数从而获得性能提升。

1.2 单条sql优于多条sql

实测发现,对于几十条sql插入当你替换成单条sql时性能有所提升,但是这里要注意的是,换成单条可读性较差,同时会出现sql超长的错误。

1.3 读和写操作是互斥的,写操作过程中可以休眠让读操作进行

由于第一步所说的多数据事务插入,从而会导致插入时间增长那么也会影响数据展示的速度,所以可以在插入过程中休眠操作,以便给读操作流出时间展示数据。

1.4 使用索引

适当的索引的好处是让读取变快,当然带来的影响就是数据插入修改的时间增加,因为还得维护索引的变化。不过对于大部分的读操作多于写操作的数据库来说索引还是十分有必要的。关于如何设计索引,可以参考下面这个文章:

索引优化

1.5 使用联合索引

过多的索引同时也会减慢读取的速度,很典型的一个情况就是比如要同时根据省市区县查询,又可以根据年月日查询,如果每个都做索引那么读取速度将会显著降低。

对于这种有层级关系的关键字,就可以考虑联合索引了,比如首先根据省查询,然后根据省市查询,层层递进到省市区县的查询方式,就可以使用联合索引,效果非常好。

1.6 勿使用过多索引

1.7 增加查询条件

当你只要一条数据时增加limit 1,这样搜索到了后面的就不会再查询了,大大的加快了速度

1.8 提前将字段的index映射好

减少getColumnIndex的时间,可以缩短一半的时间

2、数据库设计上

2.1 通过冗余换取查询速度

2.2 减少数据来提升查询速度

比如下拉操作时,先清除旧数据,再插入新数据保证数据库中的数据总量小,提升查询速度。

2.3 避免大数据多表的联合查询

和2.1的方式其实是一样的原理,只是这里需要特别拿出来说明以下,比如有文件表,还有多媒体文件表,你可以设计成一张文件表,一张多媒体关联表存放多媒体数据,文件信息还是在文件表中,然后通过外键关联。

但是如果两个表数据很多,主键还不一致同时数据从服务器下来的数序也不一致那么,两个表的联合查询出来的数据要慢的多,这个时候就可以用冗余来唤起查询速度了。

参考文献:http://www.jianshu.com/p/3b4452fc1bbd

转载于:https://www.cnblogs.com/yl-saber/p/7407074.html

sqlite性能优化相关推荐

  1. SQLite 性能优化

    SQLite性能优化 主要通过pragma指令来实现. 比如: 空间释放.磁盘同步.Cache大小等. 不要打开.前文提高了,Vacuum的效率非常低! PRAGMA auto_vacuum; PRA ...

  2. 分享一个SQLite 性能优化实例

    本文给大家分享的是个人在实际项目中对于sqlite的一次优化的记录,非常简单实用,希望对大家学习sqlite能够有所帮助. 最早接触 iOS 开发了解到的第一个缓存数据库就是 SQLite,后面一直也 ...

  3. mysql sqlite 性能优化_MySQL和Sqlite3性能测试

    测试条件:i5-4460@3.2G,普通机械硬盘. MySql: 5.0.45-community-nt,32bit, innodb引擎,innodb_flush_log_at_trx_commit= ...

  4. sqlite事务模型、性能优化tips、常见误区

    0,前言 本文主要介绍sqlite的事务模型,以及基于事务模型的一些性能优化tips,包括事务封装.WAL+读写分离.分库分表.page size优化等.并基于手淘sqlite的使用现状总结了部分常见 ...

  5. oracle的优化适用于mysql吗_性能优化之数据库优化,适用于Sqlite、Mysql、Oracle、Sql server,详细介绍了索引和事务及部分针对Sqlite的优化...

    本文为性能优化的第一篇--数据库性能优化,原理适用于大部分数据库包括Sqlite.Mysql.Oracle.Sql server,详细介绍了索引(优缺点.分类.场景.规则)和事务,最后介绍了部分单独针 ...

  6. SQLite大批量插入性能优化

    SQLite作为轻量级,零安装的数据库,用在小型桌面应用程序上特别合适. 网上搜了一下,貌似在程序中无法直接从格式化文本或CSV文件导入SQLite,只能逐条insert,这一点比起SQL SERVE ...

  7. Java性能优化技巧

    Java性能优化技巧 参考了些书籍,网络资源整理出来,适合于大多数Java应用 在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序 ...

  8. Android性能优化典范第四季

    原文链接:http://hukai.me/android-performance-patterns-season-4/ 前言 本季内容大致有:优化网络请求的行为,优化安装包的资源文件,优化数据传输的效 ...

  9. 清除浏览器缓存之后为什么还是显示旧的html页面_H5缓存机制浅析-移动端Web加载性能优化...

    1 H5缓存机制介绍 H5,即HTML5,是新一代的HTML标准,加入很多新的特性.离线存储(也可称为缓存机制)是其中一个非常重要的特性.H5引入的离线存储,这意味着 web 应用可进行缓存,并可在没 ...

最新文章

  1. 小猿圈自学web前端之CSS3动画练习案例:用CSS3做个钟表
  2. 《深入浅出MFC》系列之动态创建
  3. gopro 8 black wifi摄像头 导入 obs 直播 解决方案
  4. 网元——就是网络中的元素,网络中的设备。总之,网元是网络管理中可以监视和管理的最小单位...
  5. maya为什么不能导出fbx_Maya无法展 UV的解决办法
  6. java中optionnull_用 option 代替 null
  7. php常量定义表达式,从表达式创建PHP类常量的最佳解决方法?
  8. hough变换是如何检测出直线和圆的
  9. laravel支付宝sdk接入
  10. 《Spring技术内幕》——2.3节IoC容器的初始化过程
  11. 用Python绘制棒棒糖图表,真的好看!
  12. centos mysql开发包_CentOS 7 安装 MySQL-阿里云开发者社区
  13. docker下nginx反向代理和负载均衡配置
  14. 个人网站、个人博客的设计案例,仅供参考
  15. html添加到购物车飞入动画效果,加入购物车的动画效果
  16. 域名注册管理机构域名注册服务机构的基本概念
  17. 多元思维模型——全学科及其核心思维模型
  18. 网络数据传输的节点大全
  19. python输入一个包含若干自然数的列表_Python练习题
  20. python appium连接安卓真机测试

热门文章

  1. 机器学习模型的性能指标
  2. 代码review工具:Review Board
  3. C++等级考试知识点总结
  4. Windows Azure SDK 1.6让Visual Studio下的Azure开发更高效
  5. 小说不“好看”,读者就给你“好看”
  6. 根据状态转移写状态机-三段式
  7. Android中Log信息的输出方法
  8. alchemy php,Flask SQLAlchemy
  9. 充电原理_电动汽车充电桩如何设置?充电桩原理介绍
  10. 服务器点播直播系统,服务器点播直播系统