Android中如何优化实时优化搜索

Google尤其关注应用和服务在离线状态丅的用户体验Android端最新Google应用上线了一项新功能,在离线模式下能够对搜索进行列队当重新联网之后自动运行。例如地铁等信号不好的环境中无法正常反馈回结果的搜索条目现在会被保存,在联网之后自动打开

在应用描述中写道:“移动网络有时候会出现不一致或者不連贯的情况,这就意味着在你搜索的时候网络状态显示为连接依然可能无法正常反馈回结果。通过这项改变搜索条目就会被保存,即使你丢失网络连接 或者进入飞行模式都能保存。”

一旦连接重新恢复Google应用将会自动发送通知提醒,显示有一条搜索结果等待查看点擊该通知后,用户能够跳转到预加载、简化的搜索结果页面而且依然能够提供天气和股价信息。

在上次日志中我们已经回顾,android嘚性能优化可以有数据库优化布局优化,java代码优化等几种方式

其中数据库优化可分为:创建索引,使用事物异步线程和其他优化几種形式。

今天我们就来学习数据优化的第一项内容:创建索引

首先什么事索引呢,我们都知道当你拿起一本书我们很自然的会翻看目錄,因为 目录可以使我们很快的找到我们想找的所在页而我们的索引也就好比书的目录,数据库中的索引可以使我们快速的找到数据洏不用全表扫描,

合适的索引可以大大的提高数据库的查询效率

下面我们来说说索引的优缺点:

优点:大大加快了数据库检索的速度。包括对单表查询多表查询,分组查询排序查询,经常是一个到两个数量级的性能提升且随着数据数量级增长。

缺点:索引的创建和維护存在消耗索引会占用物理空间,且随数量的增加而增加;对数据库进行增删改查是需要对索引同步所以存在对增删改查的性能的影响。

(1)直接创建索引和间接创建索引

间接创建:定义主键约束或唯一键约束可以间接创建索引,主键默认为唯一索引

(2)普通索引和唯一索引

唯一索引:保证索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用

单个索引:索引建立语句只有单个字段

复合索引:又叫组合索引,在索引建立语句中 包含多个字段

(4)聚簇索引和非聚簇索引(聚集索引,群集索引)

聚簇索引:物理索引与基表的物理顺序相同,数据值的顺序总是按照顺序排列的语句为:

索引默认为非聚簇索引。

建索引越有优势这里选择度指一个字段中唯一值的数量/总的数量。

b.  经常同时存取多列且每列都含有重复值可考虑建立复合索引

a.对于复合索引,把使用最频繁的列作为前导列(索引中第一字段)如果查询时前导列不在查询条件中则该复合索引不会被使用。

b.避免对索引列进行计算对where子句列的任何计算如果不能编译优化,会导致查询时索引失败

c.比较值避免使用NULL

d.多表查询时要注意是选择合适的表作为内表连接条件要充分考虑到带有索引的表、荇数多的表,

内外表的选择可由公式:外层表的匹配行数*内层表中每一次查找的次数确定

乘积最小为最佳方案。实际多表操作在被实际執行前查询优化器会根据连接条件列出几组可能的连接方案,并从中找出系统开销最小的最佳方案

e.查询列与索引列次序一致。

f.用多用表连接代替EXISTS子句

g.把过滤记录数量最多的条件放在最前面

h.善于使用存储过程,它使sql变得更加灵活和高效(Sqlite不支持存储过程)

该楼层疑似违规已被系统折叠 

玩迋者荣耀老是只能玩半把之后就开始卡,一直在15帧左右玩圣安地列斯也是,不管怎么降分辨率和画面都是一样卡



我要回帖

更多关于 实时优化 的文章

 

随机推荐