亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫減負方法有哪些

發布時間:2021-09-04 21:28:27 來源:億速云 閱讀:125 作者:chen 欄目:大數據

這篇文章主要介紹“數據庫減負方法有哪些”,在日常操作中,相信很多人在數據庫減負方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”數據庫減負方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1.緩存

首先第一種解決方案就是緩存了。

緩存,我們可以將數據直接緩存在內從中,例如 Map、也可以使用緩存框架如 Redis 等,將一些需要頻繁使用的熱點數據保存在緩存中,每當用戶來訪問的時候,就可以直接將緩存中的數據返回給用戶,這樣可以有效降低服務器的壓力。

可以緩存起來使用的數據,一般都不能對實時性要求太高。

2.頁面靜態化

頁面靜態化其實可以算作是緩存的另外一種形式,相當于直接將相關的頁面渲染結果緩存起來。首先大家知道,在我們的 Web 項目中,資源分為兩大類:

  • 靜態資源

  • 動態資源

靜態資源就是我們常見的 HTML、CSS、JavaScript、圖片等資源,這些資源可以不經過服務端處理,就可以直接返回給前端瀏覽器,瀏覽器就可以直接顯示出來。

動態資源則是指我們項目中的 Servlet 接口、Jsp 文件、Freemarker 等,這些需要經過服務端渲染之后,才可以返回前端的資源。

在實際項目中,靜態資源的訪問速度要遠遠高于動態資源,動態資源往往很容易遇到服務器瓶頸、數據庫瓶頸,因此,對于一些不經常更新的頁面,或者說更新比較緩慢的頁面,我們可以通過頁面靜態化,將一個動態資源保存為靜態資源,這樣當服務端需要訪問的時候,直接將靜態資源返回,就可以避免去操作數據庫了,降低數據庫的壓力。

例如松哥以前做過的一個電商項目,系統根據大數據統計,自動統計出用戶當前搜索的熱點商品,這些熱點商品,10 分鐘更新一次,也就是說,在十分鐘內,用戶登錄上來看到的熱點商品都是相同的。那么就沒有必要每次都去查詢數據庫,而是將熱點數據的頁面,通過輸出流自動寫到服務器上,寫成一個普通的 HTML 文件,下次用戶來訪問,在 10 分鐘有效期內,直接將 HTML 頁面返回給用戶,就不必操作數據庫了。

一般來說,Freemarker、Velocity 等都有相關的方法可以幫助我們快速將動態頁面生成靜態頁面。

這就是頁面靜態化。

3.數據庫優化

很多時候程序跑得慢,不是因為設備落后,而是因為數據庫 SQL 寫的太差勁。

要解決海量數據的問題,數據庫優化肯定也是不可避免的。一般來說,我們可以從 SQL 優化、表結構優化、以及數據庫分區分表等多個方面來對數據庫進行優化。數據庫優化其實也是一門巨大的學問,松哥以后看有時間寫個連載和大家仔細聊聊這個話題。

4.熱點數據分離

數據庫中的數據,雖然是海量數據,但是這些數據并不見得所有數據都是活躍數據,例如用戶注冊,有的用戶注冊完就消失的無影無蹤了,而有的用戶則在不停的登錄,因此,對于這兩種不同的用戶,我們可以將活躍用戶分離出來,在主要操作的數據表中只保存活躍用戶數據。每次用戶登錄,先去主表中查看有沒有記錄,有的話,直接登錄,沒有的話,再去查看其他表。

通過判斷用戶在某一段時間內的登錄次數,就可以很快分離出熱點數據。

5.合并數據庫操作

這個方案的宗旨其實是減少數據庫操作的次數,例如多次插入操作,我們可以合并成一條 SQL 搞定。多個不同條件的查詢,如果條件允許的話,也可以合并成為一個查詢,盡量減少數據庫的操作,減少在網絡上消耗,同時也降低數據庫的壓力。

6.數據庫讀寫分離

數據庫的讀寫分離其實松哥在之前的 MyCat 中也和大伙聊過了(MyCat 系列),讀寫分離之后,一方面可以提高數據庫的操作效率,另一方面也算是對數據庫的一個備份。這一塊的具體操作大家可以參考松哥前面的文章。

7.分布式數據庫

數據庫讀寫分離之后,無形中增大了代碼的復雜度,所以一般還需要借助分布式數據庫中間件,這樣可以有效提高數據庫的彈性,可以方便的隨時為數據庫擴容,同時也降低代碼的耦合度。

8.NoSQL 和 Hadoop

另外,引入 NoSQL 和 Hadoop 也是解決方案之一。NoSQL 突破了關系型數據庫中對表結構、字段等定義的條條框框,使用戶可以非常靈活方便的操作,另外 NoSQL 通過多個存儲塊存儲數據的特點,使得天然具備操作大數據的優勢(快)。不過,老實說,NoSQL 目前還是在互聯網項目中比較常見,在傳統的企業級應用中還是比較少見。

Hadoop 就不必說了,大數據處理利器。


到此,關于“數據庫減負方法有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天津市| 苗栗县| 姚安县| 武川县| 梓潼县| 思茅市| 白朗县| 屯昌县| 吐鲁番市| 峨眉山市| 防城港市| 宜春市| 安福县| 襄垣县| 若尔盖县| 平阳县| 红桥区| 大冶市| 平凉市| 孝昌县| 察雅县| 太仆寺旗| 饶平县| 泊头市| 灵台县| 桐庐县| 正阳县| 剑川县| 攀枝花市| 化德县| 石楼县| 锦州市| 新沂市| 清水河县| 罗源县| 闽侯县| 商都县| 黎平县| 武穴市| 静乐县| 当雄县|