开发者

partitioning and sub partitioning mysql table

开发者 https://www.devze.com 2023-03-05 19:43 出处:网络
My Table structure is CREATE TABLE IF NOT EXISTS `billing_total_success` ( `bill_id` int(11) NOT NULL AUTO_INCREMENT,

My Table structure is

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 ;

I need to partition this based on circle and subpartition on source.

Circle: Is 2 character from a set of 11 values ("AA","XB","BT"...)

Source: can be either "RNE"(sub partition 1) or "PR"(sub partition 2) or any other string(sub partition 3).

How do I do this partitioning?开发者_JAVA百科


Take a look at MySQL range partitioning. The closest you can get is to define a range less than "RNE", then a partition less than the next value which would occur after "RNE". Similar with PR, and then you can have a catch-all partition. The only issue here is that you need multiple partitions for before "RNE", the hole between "RNE" and "PR", and after "PR".

Perhaps if you could explain why you want to partition in this way, we could provide an alternative solution :)

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号