在上一篇文章我们介绍了使用Mycat实现分库分表,这里的核心语句就是:
dbpartition BY mod_hash(student_id) tbpartition BY mod_hash(student_id) tbpartitions 2 dbpartitions 1;
上面语句里面我们使用的是mod_hash进行分片,那么这篇文章我们介绍下载mycat中一共有哪些分片算法及适用范围。如下表:
序号 | 分片算法 | 描述 | 是否支持分库 | 是否支持分表 | 支持的数值类型 |
1 | MOD_HASH | 取模哈希 | 是 | 是 | 数值,字符串 |
2 | UNI_HASH | 取模哈希 | 是 | 是 | 数值,字符串 |
3 | RIGHT_SHIFT | 右移哈希 | 是 | 是 | 数值 |
4 | RANGE_HASH | 两字段其一取模 | 是 | 是 | 数值,字符串 |
5 | YYYYMM | 按年月哈希 | 是 | 是 | DATE,DATETIME |
6 | YYYYDD | 按年月哈希 | 是 | 是 | DATE,DATETIME |
7 | YYYYWEEK | 按年周哈希 | 是 | 是 | DATE,DATETIME |
8 | MM | 按月哈希 | 是 | DATE,DATETIME | |
9 | DD | 按日期哈希 | 是 | DATE,DATETIME | |
10 | MMDD | 按月日哈希 | 是 | 是 | DATE,DATETIME |
11 | WEEK | 按周哈希 | 是 | DATE,DATETIME | |
12 | STR_HASH | 字符串哈希 | 是 | 是 | 字符串 |
以上就是mycat支持的分库分表的分片算法,在实际的过程中按照实际场景需求进行设计即可。
还没有评论,来说两句吧...