0

我的表结构是

CREATE TABLE IF NOT EXISTS `billing_total_success` (
`bill_id` int(11) NOT NULL AUTO_INCREMENT,
`location` char(10) NOT NULL,
`circle` varchar(2) NOT NULL,
`amount` int(11) NOT NULL,
`reference_id` varchar(100) NOT NULL,
`source` varchar(100) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`bill_id`),
KEY `location` (`location`),
KEY `soutime` (`source`,`time`),
KEY `circle` (`circle`,`source`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=80527470 ;

我需要根据源上的圈子和子分区对此进行分区。

圆圈:是一组 11 个值中的 2 个字符(“AA”、“XB”、“BT”...)

来源:可以是“RNE”(子分区 1)或“PR”(子分区 2)或任何其他字符串(子分区 3)。

我该如何进行这种分区?

4

1 回答 1

0

看看MySQL 范围分区。您可以获得的最接近的是定义一个小于“RNE”的范围,然后是一个小于“RNE”之后出现的下一个值的分区。与 PR 类似,然后您可以拥有一个包罗万象的分区。这里唯一的问题是在“RNE”之前、“RNE”和“PR”之间以及“PR”之后需要多个分区。

也许如果您可以解释为什么要以这种方式进行分区,我们可以提供替代解决方案:)

于 2011-05-14T19:41:01.637 回答