[原]數據庫中的partitioning和sharding

1. 如何理解定義

    在中文中,partitioning和sharding都有分區的意思。從大的方面來講,這兩個詞所執行的動做確實也和分區相關。partitioning在不少場合是vertical partitioning的簡稱,那麼天然而然,sharding就是horizon partitioning了。可是此時又引入了兩個名詞,vertical和horizon。在什麼東西上進行vertic和horizon進行操做?區別在哪裏?性能

 

2.從一個特定點出發

    要理解vertical partitioning和horizon partitioning,那麼就應該知道這是站在什麼角度去區分這兩個動做。顯然,咱們一直在討論的是數據,那麼固然就是站在數據行的角度了。orm

    vertical partitioning指的是將邏輯的數據行打散到多個數據行中(可是仍是在同一個物理機上)。這麼作的理由能夠是爲了性能、可用性或者可維護性。get

    horizon partitioning(sharding)指的是將存儲的數據分散到多個物理機上。可是每一個數據行的列是相同的。這麼重的理由一樣能夠是爲了性能、可用性或者可維護性。it

3.總結

        vertical partitioning是列(column)的角度去分區,而horizon partitioning是從行(row)的角度去分區。io

4.引用

1.https://www.quora.com/Whats-the-difference-between-sharding-DB-tables-and-partitioning-themtable

2.http://stackoverflow.com/questions/20388923/database-partitioning-horizontal-vs-vertical-difference-between-normalizatio引用

相關文章
相關標籤/搜索