Partitioning(广义)可以分为两种方式:水平分区(Horizontal Partition)和垂直分区(Vertical Partition)。
水平分区(Horizontal Partition),也称为分片(Sharding)。这里的水平可以理解为横向扩展(Scale Out)。
分片将数据库Schema复制并分布在多个实例或服务器上。一个数据库进行分片时,会创建一个Schema的副本,然后根据Shard Key将数据存储在相应分片中。
垂直分区(Vertical Partition),也就是常说的分区(Partitioning,狭义)。这里的垂直可以理解为纵向扩展(Scale Up)。
分区指将数据库实例中的表分成更小的子表或分区的过程。一个数据库进行分区时,会将Schema和数据都进行分割。这些分区可以单独访问和管理,可以存在于不同的磁盘上,以提高数据库的性能、可维护性和可用性。
Sharding | Partitioning | |
---|---|---|
范围 | 集群/多个实例/多个服务器 | 一个实例 |
分区方式 | Horizontal Partitioning | Vertical Partitioning |
扩展类型 | 横向扩展(Scale Out) | 纵向扩展(Scale Up) |
对Schema的操作 | replicating | dividing |