Mysql Partitioning - Key vs Hash vs List vs Range

时间:2011-06-28 05:47:25

标签: mysql scaling partitioning

我浏览了一些mysql的文档,但无法理解以下分区方式的区别:Key vs Hash vs List vs Range.Can有人用纯英语解释?

我们还有下表:我们如何通过forum_id进行分区?

CREATE TABLE IF NOT EXISTS `posts_content` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `post_id` int(11) NOT NULL,
  `forum_id` int(11) NOT NULL,
  `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=79850 ;

感谢你

1 个答案:

答案 0 :(得分:3)

key和hash表示记录将随机分发,例如,如果为forum_id定义3个分区,则forum_id 1,3和7的记录可能会转到分区1,2和4转到分区2, 5和6分区3。 在列表和范围中,您可以定义哪些数据转到哪个分区,如果您基于日期进行分区,则首选它们,以确保所有最近的帖子都在同一个分区上。通常,您必须避免使用多个分区的查询。因此,您首先要了解数据访问模式,然后选择正确的分区类型。