为了账号安全,请及时绑定邮箱和手机立即绑定

javaweb开发优化

javaweb开发优化

呼如林 2018-07-10 16:39:21
做了一个个人博客的项目,首页需要展示很多内容,有网站的基本信息,罗列最新的博客,个人介绍,最新评论,推荐文章,热门文章,热门文章标签等。这些都需要查询数据库。我使用的是springmvc,当访问首页时,首先访问一个Controller然后把所有这些信息全部通过数据库查出来,然后放到model里再展示出来,但是感觉这样做的效率太低,展示一个首页需要访问接近10次数据库。用腾讯云1M带宽的服务器,访问首页需要等待5s才能显示完所有信息,实在是太慢了,请问一般这种首页是怎么实现的?是怎么去访问数据库的呢?如何去优化?
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

建议先在本机测试一下访问速度,以明确问题:
1、如果瓶颈在数据库访问多,那么和1M带宽就没什么关系。可以考虑采用ajax的方式,先加载主要的内容,其他内容异步加载。
2、如果是返回数据库多,造成网络传输慢,才和带宽有关系,这时候一般是做分页查询降低数据量,另外就是服务器上启动gzip压缩,会大大降低网络传输量。

理论上一个业务动作中,访问10次数据库不算什么,如果少量数据的查询,单次数据库的查询处理时间一般在几十毫秒,整体算下来总时间应该在1秒以内。

还有一个思路就是静态化处理,因为博客类的站点内变更不频繁,在内容发布的时候可以生成静态页面,用户访问的时候只显示生成好的静态问题,这样速度回快很多。


查看完整回答
反对 回复 2018-07-10
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

1M的带宽其实只有128kb/s,如果需要加载的资源比较多,慢是当然的
首先访问一个Controller然后把所有这些信息全部通过数据库查出来

如果有信心可以试试并行这些查询,更稳妥的方式是ajax,把多个查询分解成(部分)并行的多个请求


查看完整回答
反对 回复 2018-07-10
  • 3 回答
  • 0 关注
  • 501 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信