hash分区表的分区奇偶数的差别

来源:互联网 发布:游族网络 贴吧 编辑:程序博客网 时间:2024/06/05 17:11

在oracle中hash分区数建议是2的 幂,因为如果不是2的幂数会导致数据量的分布不均匀,下面测试下mysql的情况:

CREATE TABLE `tb1` (  `id` int(11) DEFAULT NULL,  `userid` int(11) DEFAULT NULL,  `name` varchar(50) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8/*!50100 PARTITION BY HASH (userid)PARTITIONS 4 */ 

下面是分区数为4的情况
mysql> SELECT PARTITION_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS where table_name=’tb1’;
+—————-+————+
| PARTITION_NAME | TABLE_ROWS |
+—————-+————+
| p0 | 3548 |
| p1 | 3506 |
| p2 | 3608 |
| p3 | 3557 |
+—————-+————+
4 rows in set (0.00 sec)

看到在有四个分区的情况下,分布的还是很均衡的,下面是分区数是5的情况

 CREATE TABLE `tb1` (  `id` int(11) DEFAULT NULL,  `userid` int(11) DEFAULT NULL,  `name` varchar(50) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8/*!50100 PARTITION BY HASH (userid)PARTITIONS 5 */ 

mysql> SELECT PARTITION_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS where table_name=’tb1’;
+—————-+————+
| PARTITION_NAME | TABLE_ROWS |
+—————-+————+
| p0 | 3089 |
| p1 | 3128 |
| p2 | 3087 |
| p3 | 3165 |
| p4 | 3118 |
+—————-+————+
5 rows in set (0.00 sec)

看到在分区数是5的情况下,数据的分布也是比较均衡的,没有出现明显的差别

阅读全文
0 0
原创粉丝点击