1. 程式人生 > >資料切分——原理

資料切分——原理

宣告:本系列教程參考資料《Mysql效能調優與架構設計》

        Why Mysql?

        大家可能懷疑,資料庫有好多種,為什麼選擇Mysql作為資料切分的案例,為什麼不選擇Oracle、MS SqlServer或者DB2等等。原因是大家都知道,淘寶網最開始選擇LAMP的架構設計,即Linux+Apache+Mysql+PHP,最開始系統遇到的瓶頸是當時PHP不支援資料庫連線池,國外當時有一個支援連線池的PHP技術,但是價格非常昂貴,後來不得不將核心業務用Java改寫,經過一段時間的發展,淘寶的架構變成

Java+ibatis+Oracle,但是Oracle需要跑到IBM的微型機上,成本相當高,這時淘寶又選擇了Mysql,因為Mysql是第一個在Linux下執行的資料庫,叢集效能和穩定性特別好,對伺服器的效能要求也不高,所以淘寶最新的系統更多的是用Mysql來承擔的。

       拋開淘寶,京東、新浪等等都是選擇Mysql,他們在大資料的處理上面都選擇Mysql,證明應用Mysql資料庫是一個不錯的選擇。

       什麼是資料切分?

        資料切分(Sharding)是指通過某種特定的條件,將我們存放在同一個資料庫中的資料分散存放到多個數據庫(主機)上面,以達到分散單臺裝置負載的效果。資料的切分同時還可以提高系統的總體可用性,因為單臺裝置Crash之後,只有總體資料的某部分不可用,而不是所有的資料。

        資料的切分(Sharding)根據其切分規則的型別,可以分為兩種切分模式。一種是按照不同的表(或者Schema)來切分到不同的資料庫(主機)之上,這種切可以稱之為資料的垂直(縱向)切分;另外一種則是根據表中的資料的邏輯關係,將同一個表中的資料按照某種條件拆分到多臺資料庫(主機)上面,這種切分稱之為資料的水平(橫向)切分。

        垂直切分還是水平切分?

       垂直切分的最大特點就是規則簡單,實施也更為方便,尤其適合各業務之間的耦合度非常低,相互影響很小,業務邏輯非常清晰的系統。在這種系統中,可以很容易做到將不同業務模組所使用的表分拆到不同的資料庫中。根據不同的表來進行拆分,對應用程式的影響也更小,拆分規則也會比較簡單清晰。

       水平切分於垂直切分相比,相對來說稍微複雜一些。因為要將同一個表中的不同資料拆分到不同的資料庫中,對於應用程式來說,拆分規則本身就較根據表名來拆分更為複雜,後期的資料維護也會更為複雜一些。

       在我們的系統中,如果用垂直切分足夠解決問題,那麼我們首選垂直切分,垂直切分帶來的好處是不言而喻的,假如垂直切分仍然不能滿足要求的時候,那麼我們就不得不垂直切分和水平切分聯合使用了,但是進行水平切分的時候一定要仔細斟酌切分規則,不同的切分規則會帶來截然不同的維護成本,儘量做到符合業務需求。

         Why Sharding?

       理由通常是這樣的,要麼資料量很大,要麼併發很大,總之,因為資料庫不能很好的為他的客戶端服務了。

       大家有沒有想過,騰訊的QQ號是放在一個數據庫了嗎?新浪的微博資訊是存放在一張表裡了嗎?還有微信的聊天記錄是放在一個數據庫的一張表了嗎?答案當然是否定的。幾個億的QQ號、海量的微博資訊和聊天記錄放在一個數據庫的一張表裡無疑是一場災難,如此大的資料量就要用到資料的切分技術。

       資料的切分不光是解決大資料的問題,同時也會給高併發提供了一定的幫助。對於聊天記錄,我們可以利用資料的垂直切分,將聊天記錄業務與其他業務分離開來,這樣客戶端訪問資料庫的時候可以有更理想的效能,同時,我們可以利用水平切分,每個人一張表,這樣可以保證每個人讀取自己的聊天記錄的時候也會有更理想的效果,當然,即使你這樣做了,資料量還是很大,你也可以根據業務進行更大力度的切分,一般垂直切分和水平切分聯合使用可以解決大部分問題。

相關推薦

資料切分——原理

宣告:本系列教程參考資料《Mysql效能調優與架構設計》         Why Mysql?         大家可能懷疑,資料庫有好多種,為什麼選擇Mysql作為資料切分的案例,為什麼不選擇O

數據切分——原理

color 條件 程序 類型 一個 一段時間 新的 國外 時有 聲明:本系列教程參考資料《Mysql性能調優與架構設計》 Why Mysql? 大家可能懷疑。數據庫有好多種,為什麽選擇Mysql作為數據切分的案例,為什麽不選擇Or

MT8735芯片資料MT8735原理圖MT8735datasheet

市場 com wlan 全連接 模塊 sheet 平板 定制開發 物聯 MT8735是用於主流蜂窩平板電腦市場的高度集成的64位平板電腦片上系統(SoC),具有4G LTE調制解調器和全連接(藍牙,FM,WLAN和GPS)。 MT8735B / D是MT8735系列的最新發

mt6732芯片資料mt6732原理圖下載

pen 兼容 b- src 優秀 媒體 下載 下一個 -o MT6732 Platform‐ 基礎介紹LTE 4G(64bit)4核芯片- 8926 與高通 芯片性能相當, BOMcost貼近目前6582主流價格,1.5GHz主頻,HD分辨率屏,13MP攝像頭;與MT67

MT6763芯片資料MT6763原理

2.0 應用程序 好的 方便 觀察 技術 .html 子郵件 外設 mt6763設備,集成藍牙、fm、wlan和gps模塊,是一個高度集成的基帶同時包含調制解調器和啟用應用程序處理子系統lte/lte-a和c2k智能手機應用程序闖客網 。mt6763芯片集成了ARM|Cor

MT6580晶片資料MT6580原理資料

MT6580是一個高度整合的基帶包含調變解調器和應用處理系統使3G整合的智慧電話應用藍芽、WiLAN、FM和gps模組。闖客網整合的射頻解決方案提供了特殊的無線電嚴格環境下的效能條件.該晶片集成了四核。arm Cortex-A7 mpcoretm®和支援不同的啟動介面,包括並行NAND快閃記憶體或EMMC,和

MT6580芯片資料MT6580原理資料

高度 郵件 最新 新的 14. pen 調制 nand .com MT6580是一個高度集成的基帶包含調制解調器和應用處理系統使3G集成的智能電話應用藍牙、WiLAN、FM和gps模塊。闖客網集成的射頻解決方案提供了特殊的無線電嚴格環境下的性能條件.該芯片集成了四核。arm

ElasticSearch最佳入門實踐(二十八)剖析document資料路由原理

1、document路由到shard上是什麼意思? 我們這段,一個index的資料會被分為多片,每個片都在一個shard中,所以說,一個document存在於一個shard中 當客戶端建立的時候,es此時就需要決定說,這個document存在於那個shard上。 這個過程就稱

ElasticSearch 學習記錄之 分散式文件儲存往ES中存資料和取資料原理

分散式文件儲存 ES分散式特性 遮蔽了分散式系統的複雜性 叢集內的原理 垂直擴容和水平擴容 真正的擴容能力是來自於水平擴容–為叢集新增更多的節點,並且將負載壓力和穩定性分散到這些節點中 ES叢集特點 一個叢集擁有相同

MT2511晶片技術分析資料,MT2511資料原理

MT2511晶片技術分析資料,MT2511資料表原理圖 日常給大家分享MTK晶片資料,論壇上有很多關於MTK晶片資料,是一個資料共享的平臺,各種型號,包括規格書,原理圖,設計表等開發資料,需要的可以到闖客網技術論壇下載,也可以加群獲取:813238832資料連結:https://bbs.usoftchina

MT6370晶片技術分析資料,MT6370資料原理

MT6370晶片技術分析資料,MT6370資料表原理圖 MT6370在網上的資料比較少,應該有不少小夥伴在找,今天就給你們分享這個晶片資料吧,但想要更詳細的開發資料還是到闖客網技術論壇下載吧,或者加群獲取:813238832,全部開發資料都齊全,但文章能給你們展示的就這麼多,整理的也不是特別齊全,希望能幫到

手機顯示資料原理:手機通過WebView控制元件顯示網頁資料

WebView控制元件是用於顯示網頁的,手機根據網頁建立一個WebView,之後顯示出來,所以顯示WebView網頁是通過WebView控制元件顯示的。     <script type="text/javascript" charset="utf-8

MT8735晶片資料MT8735原理圖MT8735datasheet

MT8735是用於主流蜂窩平板電腦市場的高度整合的64位平板電腦片上系統(SoC),具有4G LTE調變解調器和全連線(藍芽,FM,WLAN和GPS)。 MT8735B / D是MT8735系列的最新發展,提供一流的多媒體效能,更好的處理能力,改進的連線子系統,降低製造商在全球主流市場成功開發裝置的成本。

MT6238晶片技術分析資料,MT6238資料原理

MT6238晶片技術分析資料,MT6238資料表原理圖 MT6238晶片是聯發科相對來說比較好的晶片,相對來說,價格和效能會比較好,但網上關於MT6238晶片的資料還是比較少的,所以我今天來分享它的資料,包括原理圖、資料表和規格書等資料都會分享給大家,你們可以到闖客網技術論壇下載,也可以加群:8132388

MT523晶片技術分析資料,MT523資料原理

MT523晶片技術分析資料,MT523資料表原理圖 MT2523的資料有很多,關於硬體資料、驅動開發、智慧手機平臺datasheet規格書和抗阻匹配檔案等都在闖客網技術論壇可以免費下載,然後隨便整理了一點,可能不太齊全,不要怪小編,小編給方式你獲取,更多資料可以加群獲取:813238832資料連結:http

詳解vue的資料binding原理

請看原文: 草蓆兩個頁面: <!DOCTYPE html> <html> <head> <title>ideal</title> <meta charset="utf-8">

MT5932晶片技術分析資料,MT5932資料原理

MT5932晶片技術分析資料,MT5932資料表原理圖 有小夥伴私信我說讓我分享MT5932晶片的資料,因為在網上找不到這個晶片的資料,聯發科現在晶片上的資料比較少公開,所以找起來比較困難,但是你們有小編我啊,已經給你們整理好資料放在闖客網技術論壇了,剩下的就是去下載了,加群也可以獲取:813238832,

Redis實踐系列丨Codis資料遷移原理與優化

Codis介紹 Codis 是一種Redis叢集的實現方案,與Redis社群的Redis cluster類似,基於slot的分片機制構建一個更大的Redis節點叢集,對於連線到codis的Redis客戶端來說, 除了部分不支援的命令外,與連線開源的 Redis Server 沒有明顯的區別, 客戶端程式

MT6325晶片技術分析資料,MT6325資料原理

MT6325晶片技術分析資料,MT6325資料表原理圖 今天給大家分享MT6732晶片的資料,關於MT6732的資料很多平臺都有了,但小編也去彙集了一下資料,把他們都放在闖客網技術論壇,可以免費下載,資料很齊全,包括規格書,原理圖和資料表等開發資料,都分享給大家,下面是整理了MT6732晶片資料的一下問題和

hive指定資料切分格式--row format

建立表時需要指定資料切分格式,會用到ROW FORMAT關鍵字。 下面是java集合框架圖,存入hive的資料就是集合中的某一種 所以在建立標的時候就可以指定分隔符: 第一個--<欄位>,由[ , ]分割----------FIELDS TERMINATED BY