APP访问缓慢优化方案

现象

公司的一个APP点击某些页面非常缓慢,有些等待1分钟,出现大部分用户不想使用的情况。

目标

要在3天内完成优化,越快越好。

解决

索引

  1. 分析:某些跨表查询没有建立索引,虽然单表只有30万数据,但是一关联查询,特别是4、5张表关联时极其缓慢。
  2. 解决方法:建立索引即可。

缓存

因为数据都从oracle数据库读取,我们首先想到的就是使用缓存代替。把全部配置表的数据放到Ehcache缓存中,不直接从oracle读取,提高效率。

分页

  1. 发现有一个页面查询需要5秒,比较慢。发现其实结果集是379条详细记录,作了379次循环全部查出,一次显示。而实际上用户不需要一次观看379条记录,完全可以采用分页。APP页面每页只显示了10条,翻页时再查询下10条。这样立马1秒内能响应。
  2. 还发现有几个页面,查询条件里的时间默认是为空的,那样子用户点击查询默认就是查询全部数据,虽然这些页面作了分页,但是数据需要排序,把时间最靠前的先显示,这种情况下如果数据量上了30万以上,无论索引如何优化都是无法做到1秒内完成查询的。而实际上用户并不需要查询所有的数据,只需要把查询时间默认设置为查询最近2天,修改后1秒内完成响应。

集群

目前APP、后端服务都只部署在一个weblogic上,考虑到以后业务发展,用户数突增,需要考虑weblogic集群来进行负载均衡。目前主机有256G内存,足够运行,但在近期需完成集群优化防止性能下降再次造成用户不满。

总结

上述四种优化后,APP基本快速响应,用户使用还算比较满意,但其实,最关键的还是索引和分页的优化。

  • 缓存的优化不是没有作用,而是太小,oracle的查询其实已足够快速。我做了一个实验,结论是oracle查询一次16毫秒,第二次同样的SQL语句是0毫秒,而缓存也是0毫秒,所以非特殊情况下,基本没有任何优化效果。
  • 集群只是一个预防的措施,因此暂时来看作用不是很突出。

ouyida3的csdn博客
2015.4.10

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值