[原]数据库中的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引用

相关文章
相关标签/搜索