數(shù)據(jù)庫分片有哪些替代方案?
一、數(shù)據(jù)庫分片的替代方案
數(shù)據(jù)庫分片是一種橫向擴(kuò)縮策略,它分配額外的節(jié)點或計算機(jī)來共享應(yīng)用程序的工作負(fù)載。由于其容錯架構(gòu),組織可以從橫向擴(kuò)縮中受益。當(dāng)一臺計算機(jī)出現(xiàn)故障時,其他計算機(jī)將繼續(xù)運(yùn)行而不會中斷。數(shù)據(jù)庫設(shè)計人員通過在多個服務(wù)器之間分布邏輯分片來減少停機(jī)時間。
不過,分片是幾種數(shù)據(jù)庫擴(kuò)縮策略中的一種。探索其他技術(shù)并了解它們之間的差別。
1、縱向擴(kuò)縮
縱向擴(kuò)縮可提高單臺計算機(jī)的計算能力。例如,IT 團(tuán)隊向數(shù)據(jù)庫服務(wù)器添加 CPU、RAM 和硬盤來處理不斷增加的流量。
數(shù)據(jù)庫分片與縱向擴(kuò)縮的對比
縱向擴(kuò)縮的成本較低,但可以縱向擴(kuò)縮的計算資源是有限的。同時,作為一種橫向擴(kuò)縮策略,分片更易于實施。例如,IT 團(tuán)隊安裝多臺計算機(jī),而不是升級舊的計算機(jī)硬件。
2、復(fù)制
復(fù)制是一種制作數(shù)據(jù)庫的精確副本并將其存儲在不同計算機(jī)上的技術(shù)。數(shù)據(jù)庫設(shè)計人員使用復(fù)制來設(shè)計容錯的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。當(dāng)其中一臺托管數(shù)據(jù)庫的計算機(jī)出現(xiàn)故障時,其他副本仍可運(yùn)行。復(fù)制是分布式計算系統(tǒng)中的常見做法。
數(shù)據(jù)庫分片與復(fù)制的對比
數(shù)據(jù)庫分片不會創(chuàng)建相同信息的副本。相反,它將一個數(shù)據(jù)庫拆分為多個部分,并將它們存儲在不同的計算機(jī)上。與復(fù)制不同,數(shù)據(jù)庫分片不會帶來高可用性。?分片可以與復(fù)制結(jié)合使用,以實現(xiàn)可擴(kuò)展性和高可用性。
在某些情況下,數(shù)據(jù)庫分片可能包含特定數(shù)據(jù)集的復(fù)制。例如,向美國和歐洲客戶銷售產(chǎn)品的零售商店,可能會將尺寸轉(zhuǎn)換表的副本存儲在兩個區(qū)域的不同分片上。應(yīng)用程序可以使用轉(zhuǎn)換表的重復(fù)副本來轉(zhuǎn)換測量尺寸,而無需訪問其他數(shù)據(jù)庫服務(wù)器。
3、分區(qū)
分區(qū)是將數(shù)據(jù)庫表拆分為多個組的過程。分區(qū)分為兩種類型:
水平分區(qū)將數(shù)據(jù)庫按行拆分。垂直分區(qū)會為數(shù)據(jù)庫列創(chuàng)建不同的分區(qū)。數(shù)據(jù)庫分片和分區(qū)的對比
數(shù)據(jù)庫分片類似于水平分區(qū)。這兩個進(jìn)程都將數(shù)據(jù)庫拆分為多組唯一的行。分區(qū)將所有數(shù)據(jù)組存儲在同一臺計算機(jī)上,但數(shù)據(jù)庫分片將它們分布在不同的計算機(jī)上。
二、如何優(yōu)化數(shù)據(jù)庫分片以實現(xiàn)均勻的數(shù)據(jù)分布
當(dāng)特定物理分片上發(fā)生數(shù)據(jù)過載,而其他物理分片仍然負(fù)載不足時,就會導(dǎo)致數(shù)據(jù)庫熱點。熱點會減慢數(shù)據(jù)庫的檢索過程,從而無法實現(xiàn)數(shù)據(jù)分片的目的。
良好的分片鍵選擇可以在多個分片之間均勻分布數(shù)據(jù)。選擇分片鍵時,數(shù)據(jù)庫設(shè)計人員應(yīng)考慮以下因素。
1、基數(shù)
基數(shù)描述了分片鍵的可能值。它決定了單獨(dú)的面向列的數(shù)據(jù)庫中可能的最大分片數(shù)量。例如,如果數(shù)據(jù)庫設(shè)計人員選擇“是/否”數(shù)據(jù)字段作為分片鍵,則分片的數(shù)量限制為兩個。
2、頻率
頻率是在特定分片中存儲特定信息的概率。例如,數(shù)據(jù)庫設(shè)計人員選擇年齡作為健身網(wǎng)站的分片鍵。大多數(shù)記錄可能會進(jìn)入年齡在 30-45 歲的訂閱者的節(jié)點中,從而產(chǎn)生數(shù)據(jù)庫熱點。
3、單調(diào)變化
單調(diào)變化是分片鍵的變化率。單調(diào)增加或減少分片鍵會導(dǎo)致分片不平衡。例如,反饋數(shù)據(jù)庫分為三個不同的物理分片,如下所示:
分片 A 存儲購買次數(shù)為 0-10 的客戶的反饋。分片 B 存儲購買次數(shù)為 11-20 的客戶的反饋。分片 C 存儲購買次數(shù)為 21 或更多的客戶的反饋。隨著業(yè)務(wù)的增長,客戶的購買次數(shù)將超過 21 次或更多。應(yīng)用程序?qū)⑵浞答伌鎯υ诜制?C 中,這會導(dǎo)致分片不平衡,因為分片 C 包含的反饋記錄比其他分片多。
以上就是關(guān)于數(shù)據(jù)庫分片的替代方案以及如何優(yōu)化數(shù)據(jù)庫分片以實現(xiàn)均勻的數(shù)據(jù)分布的全部內(nèi)容了,希望對你有所幫助。

相關(guān)推薦HOT
更多>>
Java9和Java11區(qū)別大嗎?
一、Java9和Java11區(qū)別Java 9的新特性java模塊系統(tǒng) (Java Platform Module System)。模塊系統(tǒng)的使用:HTTP 2 客戶端:HTTP/2標(biāo)準(zhǔn)是HTTP協(xié)議的詳情>>
2023-10-11 23:00:28
合約機(jī)和裸機(jī)有哪些區(qū)別?
一、合約機(jī)和裸機(jī)的區(qū)別1、定義不同合約機(jī)指的是運(yùn)營商為了吸引用戶而推出的優(yōu)惠購機(jī)的活動,它需要用戶使用特定的套餐,并且套餐時間有限制,...詳情>>
2023-10-11 22:28:38
struts2和springmvc區(qū)別?
一、struts2和springmvc區(qū)別1.框架機(jī)制Struts2采用Filter(StrutsPrepareAndExecuteFilter)實現(xiàn),SpringMVC(DispatcherServ詳情>>
2023-10-11 21:59:06
Java是什么?
一、什么是Java?首先Java是一種廣泛使用的計算機(jī)編程語言,程序員用它來和計算機(jī)交流,把要求和設(shè)想Java語言表達(dá)出來,這個過程就是我們所說的...詳情>>
2023-10-11 21:33:35熱門推薦
Java9和Java11區(qū)別大嗎?
沸合約機(jī)和裸機(jī)有哪些區(qū)別?
熱struts2和springmvc區(qū)別?
熱Java是什么?
新業(yè)務(wù)需求管理辦法有哪些優(yōu)點?
Win7 32位和64位的區(qū)別是什么?
boxcode是什么軟件?
怎么寫測試用例?
tcp進(jìn)程如何處理失敗的連接?
er圖橢圓表示什么?
doors需求管理軟件需要哪種運(yùn)行環(huán)境?
軟路由是什么?
什么是操作系統(tǒng)中資源分配的基本單位?
ic與id的區(qū)別是什么?
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費(fèi)用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團(tuán)隊
了解師資團(tuán)隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線