隨著企業業務的不斷擴充套件,不得不面臨資料量大的問題,下面針對這個問題進行各種方案的介紹。
快取的使用方式分為通過程式儲存到記憶體中和使用快取框架兩種方式。程式直接操作的是 map,尤其是concurrentmap,而常用的快取框架有 ehcache、memcache 和 redis等。
頁面靜態化是將程式最後生成的頁面儲存起來,使用頁面靜態化後就不需要每次呼叫都重新生成頁面了,這樣不但不需要查詢資料庫,而且連應用查詢處理都省了,所以頁面靜態化同時對資料量大和併發量高兩大問題都有好處。但是頁面靜態化之後,如果頁面中包含動態的資料,可以在頁面載入完畢後通過ajax非同步拉取最新的資料。常用的框架 freeemarker 和 velocity 都可以根據模板生成靜態頁面。
好的資料庫結構對於應用的訪問速度起到了很大的重要。常用的優化有如下幾種:
表結構優化;
sql語句優化;
分割槽:分割槽相對於分表,其實就是把一張表中的資料按照一定的規則存放在不同的區。
分表;索引優化:
使用儲存過程代替直接操作。
對於一張表來說,只有很少一部分的資料是使用者經常訪問和使用的,絕大多數的資料用率都很低,我們可以把活躍資料存放到一張表裡面。這樣就可以起到加速訪問的作用。
批量讀取和延遲修改的原理就是儘量減少對資料庫的io操作。比如我們在增加某些不需要那麼高實時性的資料的時候,如錄入員工的資料,我們在增加某條員工資料時,需要查詢資料庫中是否有這條資料,我們就可以先向臨時表中插入資料,然後批量錄入這些資料。
讀寫分離的本質是對資料庫進行集群,多數情況下我們將一台伺服器作為主伺服器,當然也可以根據不同的業務劃分主伺服器,讀取時使用其下游伺服器,這樣我們在寫入到主伺服器後,主伺服器將資料同步到其下游伺服器,然後我們再讀取下游伺服器的資料,在高併發的情況下就將資料庫的操作分配到多個資料庫去處理從而降低單台伺服器的壓力。
分布式資料庫是將不同的表存放到不同的資料庫中然後再放到不同的伺服器。這樣在處理請求時,可以讓多個伺服器同時處理,從而提高處理速度。使用分布式後的每個節點還可以同時使用讀寫分離,從而組成多個節點群。
hadoop 是專門針對大資料處理的一套框架,hadoop是將同乙個表中的資料分成多塊儲存到多個節點(分布式),而且每一塊資料都有多個節點儲存(集群),這裡集群除了可以並行處理相同的資料,還可以保證資料的穩定性,在其中乙個節點出現問題後資料不會丟失。
時間描述
2017-09-24
博文完成
csdn:
github:
海量資料解決方案
首先做使用者量估算需求,假如我們做的是學術社群,那麼這個使用者量不會很大,可能我們不需要考慮這個,對於使用者量的級別,我們暫時把使用者量級別定 為三種,百萬級別 m 和千萬界別 s 以及億萬級別 q 並考慮使用者登入驗證以及查詢常用的操作,對m和s進行擴充以及了解。眾所周知,在這個情況下,對於使用者...
海量資料的解決方案
現在無論是企業的業務系統還是網際網路上的 程式都面臨著資料量大的問題,這個問題如果解決不好將嚴重影響系統的執行的速度。1 快取和頁面靜態化 資料量大的問題最直接的解決方案就是使用快取,快取就是將從資料庫中獲取的結果佔時儲存起來,在下次使用的時候無需要重新到資料中獲取,這樣可以大大降低資料庫的壓力。快...
海量資料的解決方案 筆記
海量資料的解決方案 point 1.快取和頁面靜態化 快取的作用是降低資料庫的壓力.快取的使用方式 a 通過程式直接儲存到記憶體中 map concurrenthashmap b 使用快取框架 ehcache,memcache,redis 頁面靜態化 在程式中使用模板技術生成,如常用的fremark...