博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLite(或LitePal)查询速度很慢原因分析
阅读量:3977 次
发布时间:2019-05-24

本文共 740 字,大约阅读时间需要 2 分钟。

android数据库查询,用的是郭神的数据库框架LitePal,前期测试阶段数据量少没发现问题,app正式上线后由于数据量比较大,导致从数据库取数据非常慢,取20条数据就要十几秒。排查后发现是这样的:

我的数据封装类A:

public class Form extends DataSupport {    private String account;    private String name;    private String code;    private String date;    private List
list; private List
timeList; ......}

这里有个List<String> list的成员变量,该变量用于存储主要数据,一般都会放入几百条甚至上千条数据,所以如果查询的时候把所有字段都带出来的话就会非常慢,例如这样:

ArrayList
list = DataSupport.where("account = ?", Global.account).order("time desc").limit(20).find(Form.class);

 改成以下就可以避免:

ArrayList
list = DataSupport.select("name", "date", "time").where("account = ?", Global.account).order("time desc").limit(20).find(Form.class);

 通过select函数只取需要的字段,速度又回到非常快了。

 

 

转载地址:http://xorki.baihongyu.com/

你可能感兴趣的文章
freebsd关闭ipfw防火墙
查看>>
sshguard-ipfw在freebsd 8下的安装及配置
查看>>
五险一金的用法~~
查看>>
背下这148句话,你可以提高一个档次了,不止在文学方面
查看>>
crontab实例+详解 (附:freebsd每天6点重启)
查看>>
MySQL 用户管理
查看>>
Cannot send session cache limiter - headers already sent错误解决方法
查看>>
linux下 ping命令参数
查看>>
freebsd下简单的防arp攻击挂木马
查看>>
让freebsd每隔半小时自动ping网络,不通则重新启动
查看>>
linux tail命令详解
查看>>
Linux——信号列表
查看>>
FreeBSD网络相关命令
查看>>
FreeBsd网络性能优化方案WEB sysctl.conf ,以及老大逐句解析
查看>>
js 弹出子页面与关闭子页面刷新父页面的问题
查看>>
flash动态读取xml输出的中文字会增加文件大小
查看>>
Flash中如何显示清晰的字体
查看>>
关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明
查看>>
50个C/C++源码网站
查看>>
FreeBSD 下的 MySQL 备份方案
查看>>