亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javaweb開發優化

javaweb開發優化

婷婷同學_ 2018-07-23 09:45:51
做了一個個人博客的項目,首頁需要展示很多內容,有網站的基本信息,羅列最新的博客,個人介紹,最新評論,推薦文章,熱門文章,熱門文章標簽等。這些都需要查詢數據庫。我使用的是springmvc,當訪問首頁時,首先訪問一個Controller然后把所有這些信息全部通過數據庫查出來,然后放到model里再展示出來,但是感覺這樣做的效率太低,展示一個首頁需要訪問接近10次數據庫。用騰訊云1M帶寬的服務器,訪問首頁需要等待5s才能顯示完所有信息,實在是太慢了,請問一般這種首頁是怎么實現的?是怎么去訪問數據庫的呢?如何去優化?
查看完整描述

2 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

建議先在本機測試一下訪問速度,以明確問題:
1、如果瓶頸在數據庫訪問多,那么和1M帶寬就沒什么關系??梢钥紤]采用ajax的方式,先加載主要的內容,其他內容異步加載。
2、如果是返回數據庫多,造成網絡傳輸慢,才和帶寬有關系,這時候一般是做分頁查詢降低數據量,另外就是服務器上啟動gzip壓縮,會大大降低網絡傳輸量。

理論上一個業務動作中,訪問10次數據庫不算什么,如果少量數據的查詢,單次數據庫的查詢處理時間一般在幾十毫秒,整體算下來總時間應該在1秒以內。

還有一個思路就是靜態化處理,因為博客類的站點內變更不頻繁,在內容發布的時候可以生成靜態頁面,用戶訪問的時候只顯示生成好的靜態問題,這樣速度回快很多。


查看完整回答
反對 回復 2018-07-30
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

有兩個方法:
1.二級緩存,在服務器啟動的時候,把這些數據都加載到緩存當中,就不用每次向數據庫發請求了;
2.在頁面使用ajax異步加載,使用異步并發獲取服務器數據.
這應該是最簡單的兩種實現方式了,如果沒有的話可以試一下,也可以兩種同時使用.

查看完整回答
反對 回復 2018-07-30
  • 2 回答
  • 0 關注
  • 879 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號