下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
-4-給數(shù)據(jù)庫減負(fù)的八個思路,盤它!頁面靜態(tài)化其實可以算作是緩存的另外一種形式,相當(dāng)于直接將相關(guān)的頁面渲染結(jié)果緩存起來。傳統(tǒng)的企業(yè)級應(yīng)用,其實很少會有海量應(yīng)用,由于企業(yè)的規(guī)模本身就擺在那里,能有多少數(shù)據(jù)?高并發(fā)?海量數(shù)據(jù)?不存在的!不過在互聯(lián)網(wǎng)公司中,由于應(yīng)用大多是面對廣闊人民群眾,數(shù)據(jù)量動輒上千萬上億,那么這些海量數(shù)據(jù)要怎么存儲?光靠數(shù)據(jù)庫嗎?確定不是。今日和大家簡潔的聊一聊這個話題。海量數(shù)據(jù),光用數(shù)據(jù)庫確定是沒法搞定的,即使不讀這篇文章,信任大家也能分散這樣的共識,海量數(shù)據(jù),不是說一種方案、兩種方案就能搞定,它是一攬子方案。那么這一攬子方案都包含哪些東西呢?從以下八個方面來和大家聊聊。
1.緩存
首先第一種解決方案就是緩存了。
緩存,我們可以將數(shù)據(jù)直接緩存在內(nèi)從中,例如Map、也可以使用緩存框架如Redis等,將一些需要頻繁使用的熱點數(shù)據(jù)保存在緩存中,每當(dāng)用戶來訪問的時候,就可以直接將緩存中的數(shù)據(jù)返回給用戶,這樣可以有效降低服務(wù)器的壓力??梢跃彺嫫饋硎褂玫臄?shù)據(jù),一般都不能對實時性要求太高。
2、頁面靜態(tài)化
頁面靜態(tài)化其實可以算作是緩存的另外一種形式,相當(dāng)于直接將相關(guān)的頁面渲染結(jié)果緩存起來。首先大家知道,在我們的Web項目中,資源分為兩大類:
靜態(tài)資源
動態(tài)資源
靜態(tài)資源就是我們常見的HTML、CSS、JavaScript、圖片等資源,這些資源可以不經(jīng)過服務(wù)端處理,就可以直接返回給前端掃瞄器,掃瞄器就可以直接顯示出來。動態(tài)資源則是指我們項目中的Servlet接口、Jsp文件、Freemarker等,這些需要經(jīng)過服務(wù)端渲染之后,才可以返回前端的資源。在實際項目中,靜態(tài)資源的訪問速度要遠(yuǎn)遠(yuǎn)高于動態(tài)資源,動態(tài)資源往往很簡單遇到服務(wù)器瓶頸、數(shù)據(jù)庫瓶頸,因此,對于一些不常常更新的頁面,或者說更新比較緩慢的頁面,我們可以通過頁面靜態(tài)化,將一個動態(tài)資源保存為靜態(tài)資源,這樣當(dāng)服務(wù)端需要訪問的時候,直接將靜態(tài)資源返回,就可以避開去操作數(shù)據(jù)庫了,降低數(shù)據(jù)庫的壓力。例如我本人以前做過的一個電商項目,系統(tǒng)依據(jù)大數(shù)據(jù)統(tǒng)計,自動統(tǒng)計出用戶當(dāng)前搜尋的熱點商品,這些熱點商品,10分鐘更新一次,也就是說,在非常鐘內(nèi),用戶登錄上來看到的熱點商品都是相同的。那么就沒有必要每次都去查詢數(shù)據(jù)庫,而是將熱點數(shù)據(jù)的頁面,通過輸出流自動寫到服務(wù)器上,寫成一個一般的HTML文件,下次用戶來訪問,在10分鐘有效期內(nèi),直接將HTML頁面返回給用戶,就不必操作數(shù)據(jù)庫了。一般來說,F(xiàn)reemarker、Velocity等都有相關(guān)的方法可以關(guān)心我們快速將動態(tài)頁面生成靜態(tài)頁面。這就是頁面靜態(tài)化。
3、數(shù)據(jù)庫優(yōu)化
許多時候程序跑得慢,不是由于設(shè)備落后,而是由于數(shù)據(jù)庫SQL寫的太差勁。
要解決海量數(shù)據(jù)的問題,數(shù)據(jù)庫優(yōu)化確定也是不行避開的。一般來說,我們可以從SQL優(yōu)化、表結(jié)構(gòu)優(yōu)化、以及數(shù)據(jù)庫分區(qū)分表等多個方面來對數(shù)據(jù)庫進(jìn)行優(yōu)化。
4、熱點數(shù)據(jù)分別
數(shù)據(jù)庫中的數(shù)據(jù),雖然是海量數(shù)據(jù),但是這些數(shù)據(jù)并不見得全部數(shù)據(jù)都是活躍數(shù)據(jù),例如用戶注冊,有的用戶注冊完就消逝的無影無蹤了,而有的用戶則在不停的登錄,因此,對于這兩種不同的用戶,我們可以將活躍用戶分別出來,在主要操作的數(shù)據(jù)表中只保存活躍用戶數(shù)據(jù)。每次用戶登錄,先去主表中查看有沒有記錄,有的話,直接登錄,沒有的話,再去查看其他表。
通過推斷用戶在某一段時間內(nèi)的登錄次數(shù),就可以很快分別出熱點數(shù)據(jù)。
5、合并數(shù)據(jù)庫操作
這個方案的宗旨其實是削減數(shù)據(jù)庫操作的次數(shù),例如多次插入操作,我們可以合并成一條SQL搞定。多個不同條件的查詢,假如條件允許的話,也可以合并成為一個查詢,盡量削減數(shù)據(jù)庫的操作,削減在網(wǎng)絡(luò)上消耗,同時也降低數(shù)據(jù)庫的壓力。
6、數(shù)據(jù)庫讀寫分別
數(shù)據(jù)庫的讀寫分別其實在之前的MyCat中也和大伙聊過了(MyCat系列),讀寫分別之后,一方面可以提高數(shù)據(jù)庫的操作效率,另一方面也算是對數(shù)據(jù)庫的一個備份。
7、分布式數(shù)據(jù)庫
數(shù)據(jù)庫讀寫分別之后,無形中增大了代碼的簡單度,所以一般還需要借助分布式數(shù)據(jù)庫中間件,這樣可以有效提高數(shù)據(jù)庫的彈性,可以便利的隨時為數(shù)據(jù)庫擴(kuò)容,同時也降低代碼的耦合度。
8、NoSQL和Hadoop
另外,引入NoSQL和Hadoop也是解決方案之一。NoSQL突破了關(guān)系型數(shù)據(jù)庫中對表結(jié)構(gòu)、字段等定義的條條框框,使用戶可以特別敏捷便利的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026海南安保控股有限責(zé)任公司招聘11人備考考試題庫及答案解析
- 2026春季夢想靠岸招商銀行中山分行校園招聘參考考試題庫及答案解析
- 2026廣東深圳市龍崗區(qū)婦幼保健院招聘142人(2026年第一批次)參考考試題庫及答案解析
- 創(chuàng)業(yè)聚會活動策劃方案(3篇)
- 酒精生產(chǎn)質(zhì)量管理制度(3篇)
- 2026貴州遵義清華中學(xué)教師招聘4人考試參考試題及答案解析
- 2026年東北電力大學(xué)公開招聘博士人才1號(73人)備考考試試題及答案解析
- 2026國家電投云南國際校園招聘48人筆試備考試題及答案解析
- 2026中冶堃元(重慶)金屬材料研究院有限公司招聘40人備考考試試題及答案解析
- 2026貴州省康復(fù)醫(yī)院面向社會引聘高層次人才考試備考題庫及答案解析
- 收購商場協(xié)議書范本
- 干熱復(fù)合事件對北半球植被的影響及響應(yīng)機(jī)制研究
- 2025年四川單招護(hù)理試題及答案
- 鋼梁現(xiàn)場安裝施工質(zhì)量通病、原因分析及應(yīng)對措施
- 兒童肱骨髁上骨折術(shù)
- 腰椎常見病變課件
- 對賬單模板完整版本
- 工業(yè)互聯(lián)網(wǎng)安全技術(shù)(微課版)課件全套 項目1-7 工業(yè)互聯(lián)網(wǎng)及安全認(rèn)識-工業(yè)互聯(lián)網(wǎng)安全新技術(shù)認(rèn)識
- 甲狀腺乳腺外科診療規(guī)范
- 退換貨方案及措施
- 麻醉科常用耗材分類與管理要點
評論
0/150
提交評論