数据库中分布和分区的区别
分布:
分布是物理概念,也可以说为分库,当数据库比较大的时候把数据通过分布键都分散到各个segment节点上,这样有利于数据并行的查询。
什么时候考虑使用分库?
- 单台DB的存储空间不够
- 随着查询量的增加单台数据库服务器已经没办法支撑
分区:
分区是逻辑概念,当一个库里拥有一张大表,从逻辑上把这张大表给分开,有利于优化查询性能,分区的同时不会影响到分布的使用情况,可以并行使用。
ex:按照业务对一张表的数据在一个库里进行物理存储操作,类似于我们按照业务性质创建不同的文件夹,每个文件夹存储了一张表结构下被切分后的数 据。这样查找起来就比较的简洁化。在逻辑上看是一张表,实际上底层是N个物理区块组成的。
什么时候考虑使用分区?
总的来说,优先考虑分区。当分区不能满足需求时,开始考虑分表,合理的分表对效率的提升会优于分区。
分表
就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。
将整个数据库比作图书馆,一张表就是一本书。当要在一本书中查找某项内容时,如果不分章节,查找的效率将会下降。而同理,在数据库中就是分区。