Partitioning分为两种,一种是横向Partitioning,而另一种是纵向。横向相当于把整个表按照列来分开,然后用主键来配对。比如说表格里有序号、姓名、电话、住址,我们把序号+姓名做成一张表,然后把序号+电话+住址做成另外一张表,序号作为主键相互关联。纵向Partitioning是指,把表格按照行来分开,,比如第一张表存的是张三李四,第二张表开始存王二麻子数据,表头都是保持不变的。
Sharding和纵向partitioning有点像,不过区别在于做的更完备,会把数据进行分区,通过哈希的方式,每次存数据的时候,数据就知道自动存在哪儿了。比如说,把姓名按照二十四个字母来sharding,然后A-E进入一个分区E-J进入另外一个分区等。另外,Cassandra这种分布式数据库里会有更加完备的分区方式,可以好好参考。
网友评论