天天看點

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

scale 英文是擴充的意思。

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

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

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

scale-out:橫向去擴充。目标不是放在提高單機性能上。而是要做成分布式。多個機器來解決。

scale-up和scale-out的角度是機器的角度,一台機器不夠的時候,是把硬體性能提升(往上面擴充),還是通過分布式(橫向擴充)

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

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

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

垂直分片:典型的是将大字段拆分出去。

水準分片:按照某個字段,比如user_id進行hash,一部分到一個表,一部分到另外一張表,這就是水準分片。

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

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

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

一、scale up和scale out

二、sharding技術

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

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