隨著公司業(yè)務快速發(fā)展,數(shù)據(jù)庫中的數(shù)據(jù)量猛增,訪問性能也變慢了,優(yōu)化迫在眉睫。分析一下問題出現(xiàn)在哪兒呢? 關系型數(shù)據(jù)庫本身比較容易成為系統(tǒng)瓶頸,單機存儲容量、連接數(shù)、處理能力都有限。當單表的數(shù)據(jù)量達到1000W或100G以后,由于查詢維度較多,即使添加從庫、優(yōu)化索引,做很多操作時性能仍下降嚴重。
分庫分表就是為了解決由于數(shù)據(jù)量過大而導致數(shù)據(jù)庫性能降低的問題,將原來獨立的數(shù)據(jù)庫拆分成若干數(shù)據(jù)庫組成,將數(shù)據(jù)大表拆分成若干數(shù)據(jù)表組成,使得單一數(shù)據(jù)庫、單一數(shù)據(jù)表的數(shù)據(jù)量變小,從而達到提升數(shù)據(jù)庫性能的目的。
問題分析:用戶在瀏覽商品列表時,只有對某商品感興趣時才會查看該商品的詳細描述。因此,商品信息中商品描述字段訪問頻次較低,且該字段存儲占用空間較大,訪問單個數(shù)據(jù)IO時間較長;商品信息中商品名稱、商品圖片、商品價格等其他字段數(shù)據(jù)訪問頻次較高。由于這兩種數(shù)據(jù)的特性不一樣,因此他考慮將商品信息表拆分如下:將訪問頻次低的商品描述信息單獨存放在一張表中,訪問頻次較高的商品基本信息單獨放在一張表中。
這就是垂直分表,垂直分表定義:將一個表按照字段分成多表,每個表存儲其中一部分字段。
一般來說,某業(yè)務實體中的各個數(shù)據(jù)項的訪問頻次是不一樣的,部分數(shù)據(jù)項可能是占用存儲空間比較大的BLOB或是TEXT。例如上例中的商品描述。所以,當表數(shù)據(jù)量很大時,可以將表按字段切開,將熱門字段、冷門字段分開放置在不同表中。垂直切分帶來的性能提升主要集中在熱門數(shù)據(jù)的操作效率上,而且磁盤爭用情況減少。
通常我們按以下原則進行垂直拆分:
問題分析:通過垂直分表性能得到了一定程度的提升,但是還沒有達到要求,并且磁盤空間也快不夠了,因為數(shù)據(jù)還是始終限制在一臺服務器,庫內(nèi)垂直分表只解決了單一表數(shù)據(jù)量過大的問題,但沒有將表分布到不同的服務器上,因此每個表還是競爭同一個物理機的CPU、內(nèi)存、網(wǎng)絡IO、磁盤。
因此,我們可以把表根據(jù)業(yè)務細度進行拆分,如圖例,把店鋪表和商品表分別存放在不同的數(shù)據(jù)庫中,而地理區(qū)域表作為字典表冗余各自存在于這兩個數(shù)據(jù)庫。
這就是垂直分庫,垂直分庫是指按照業(yè)務將表進行分類,分布到不同的數(shù)據(jù)庫上面,每個庫可以放在不同的服務器上,它的核心理念是專庫專用。
它帶來的提升是:
問題分析:經(jīng)過垂直分庫后,數(shù)據(jù)庫性能問題得到一定程度的解決,但是隨著業(yè)務量的增長,PRODUCT_DB(商品庫)單庫存儲數(shù)據(jù)已經(jīng)超出預估。粗略估計,目前有8w店鋪,每個店鋪平均150個不同規(guī)格的商品,再算上增長,那商品數(shù)量得往1500w+上預估,并且PRODUCT_DB(商品庫)屬于訪問非常頻繁的資源,單臺服務器已經(jīng)無法支撐。此時該如何
優(yōu)化?
因此,嘗試水平分庫,將店鋪ID為單數(shù)的和店鋪ID為雙數(shù)的商品信息分別放在兩個庫中。
也就是說,要操作某條數(shù)據(jù),先分析這條數(shù)據(jù)所屬的店鋪ID。如果店鋪ID為雙數(shù),將此操作映射至RRODUCT_DB1(商品庫1);如果店鋪ID為單數(shù),將操作映射至RRODUCT_DB2(商品庫2)。此操作要訪問數(shù)據(jù)庫名稱的表達式為RRODUCT_DB[店鋪ID%2 + 1]。
這就是水平分庫,水平分庫是把同一個表的數(shù)據(jù)按一定規(guī)則拆到不同的數(shù)據(jù)庫中,每個庫可以放在不同的服務器上。
它帶來的提升是:
按照水平分庫的思路對他把PRODUCT_DB_X(商品庫)內(nèi)的表也可以進行水平拆分,其目的也是為解決單表數(shù)據(jù)量大的問題。
與水平分庫的思路類似,不過這次操作的目標是表,商品信息及商品描述被分成了兩套表。如果商品ID為雙數(shù),將此操作映射至商品信息1表;如果商品ID為單數(shù),將操作映射至商品信息2表。此操作要訪問表名稱的表達式為商品信息 [商品ID%2 + 1]。
這就是水平分表。水平分表是在同一個數(shù)據(jù)庫內(nèi),把同一個表的數(shù)據(jù)按一定規(guī)則拆到多個表中。
它帶來的提升是:
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:分庫分表:垂直分庫、垂直分表、水平分庫、水平分表四個概念-創(chuàng)新互聯(lián)
標題鏈接:http://aaarwkj.com/article26/cchejg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、品牌網(wǎng)站制作、網(wǎng)站導航、網(wǎng)站改版、靜態(tài)網(wǎng)站、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容