資料庫的sacle-up和scale-out與sharding技術區分

王滔發表於2014-11-26

scale 英文是擴充套件的意思。

 

資料庫要進行擴充套件,指的是儲存系統不夠,或者效能不夠,要提升的時候,就要進行擴充套件。

分為向上擴充套件和橫向擴充套件,這就像一個人往上面發展與橫向發展兩種思路。


scale-up:往上方向去擴充套件,就是提高單機的效能,比如資料庫調優,硬體上的調優等等。都是從一個提升上來考慮。

scale-out:橫向去擴充套件。目標不是放在提高單機效能上。而是要做成分散式。多個機器來解決。
scale-up和scale-out的角度是機器的角度,一臺機器不夠的時候,是把硬體效能提升(往上面擴充套件),還是通過分散式(橫向擴充套件)

橫向擴充套件是一個戰略上的,要做成分散式,怎麼把資料分散到多個機器上呢,現在要談戰術上用什麼技術手段,技術手段就是sharding技術。


而sharding技術是分片的意思,分片其實是指資料進行分片

分為垂直分片和水平分片。

垂直分片:典型的是將大欄位拆分出去。
水平分片:按照某個欄位,比如user_id進行hash,一部分到一個表,一部分到另外一張表,這就是水平分片。

 

我覺得,sharding側重的點不同,側重的點是對資料,資料庫中的資料如何進行分片上(分散到多個點儲存,這個點可以是伺服器,也可以是小到一個庫,小到一個表)。

 

而sacle側重是整個資料庫如何擴充套件。是整體上的。



解決資料庫效能問題歸類分為兩大類:

一、scale up和scale out
二、sharding技術

網上關於分表的資料很多。

 

以上只是為個人做概念區分。不正確之處,等待完善

相關文章