mysql 有很多种表分区的方式,这里写一些笔者对于hash分区的感悟。
如有错误,恳请读者斧正。
mysql hash分区不用像其他的分区指定,当某一列值得情况为某某某的情况去到某一分区。
比如list分区和range分区。
hash直接只用指定分几个区,然后根据算的结果将一行数据去到某一个分区即可。
但是具体是怎么算的,其实hash分区其实就是取模运算 , 比如 5%4 余1 所以去到 p1分区。
4 % 4 余0 ,所以去到p0分区。
这也就知道了具体的一行去到那个分区了。
但是问题来了,如果某一列是varchar呢??答案就是mysql不允许某一列为varchar来进行hash分区运算。
还有就是mysql分区的字段必须是要包含在主键字段之内的。不然是会报错的。