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 range partitioningを見てください。あなたが得ることができる最も近いものは、「RNE」よりも小さい範囲を定義し、次に「RNE」の後に発生する次の値よりも小さいパーティションを定義することです。PR と同様に、キャッチオール パーティションを作成できます。ここでの唯一の問題は、「RNE」の前、「RNE」と「PR」の間の穴、および「PR」の後に複数のパーティションが必要なことです。

おそらく、このように分割したい理由を説明できれば、別の解決策を提供できます:)

于 2011-05-14T19:41:01.637 に答える