私はテーブル 'items'を持っています。 18万のレコードは:データごとの分割mysql
:CREATE TABLE IF NOT EXISTS `part_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`log_id` int(11) NOT NULL,
`res_id` int(11) NOT NULL,
`link` varchar(255) NOT NULL,
`title` text NOT NULL,
`content` text NOT NULL,
`n_date` varchar(255) NOT NULL,
`nd_date` int(11) NOT NULL,
`s_date` int(11) NOT NULL,
`not_date` date NOT NULL,
PRIMARY KEY (`not_date`,`id`),
UNIQUE KEY `link_2` (`not_date`,`link`),
KEY `log_id` (`log_id`),
KEY `res_id` (`res_id`),
KEY `now_date` (`not_date`),
KEY `sql_index` (`res_id`,`id`,`not_date`)
) ENGINE=Aria DEFAULT CHARSET=utf8 PAGE_CHECKSUM=0
/*!50100 PARTITION BY RANGE (TO_DAYS(not_date))
(PARTITION p_1 VALUES LESS THAN (735963) ENGINE = Aria,
PARTITION p_2 VALUES LESS THAN (736694) ENGINE = Aria) */ AUTO_INCREMENT=18414661 ;
は、その後、私はsql_query実行します。
CREATE TABLE IF NOT EXISTS `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`log_id` int(11) NOT NULL,
`res_id` int(11) NOT NULL,
`link` varchar(255) NOT NULL,
`title` text NOT NULL,
`content` text NOT NULL,
`n_date` varchar(255) NOT NULL,
`nd_date` int(11) NOT NULL,
`s_date` int(11) NOT NULL,
`not_date` date NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `link_2` (`link`),
KEY `log_id` (`log_id`),
KEY `res_id` (`res_id`),
KEY `now_date` (`not_date`),
KEY `sql_index` (`res_id`,`id`,`not_date`)
) ENGINE=Aria DEFAULT CHARSET=utf8 PAGE_CHECKSUM=0 AUTO_INCREMENT=18382133 ;
は、私はそれのミニコピーを作成し、このテーブルを分割し、プライマリとuniqのキーで列「not_date」を含めるようにしよう
alter table `part_items` PARTITION BY RANGE(TO_DAYS(not_date)) (
PARTITION p_1 VALUES LESS THAN(TO_DAYS('2014-12-31')),
PARTITION p_2 VALUES LESS THAN(TO_DAYS('2016-12-31'))
);
次に、p_1でなくてはならないレコードを選択しようとしていて、パーティションについて説明すると、p_1でしか検索できなかったことがわかります。しかし、p_2になければならないレコードを選択すると、説明パーティションはフルスキャン(p_1、p_2)を表示します。 私のコードで何が間違っていますか? クエリ:
explain partitions SELECT * FROM `part_items` where content like '%k%' and not_date < '2014-05-12'
explain partitions SELECT * FROM `part_items` where content like '%k%' and not_date > '2015-01-01'
そして、もう一つ質問:それはビューを分割することは可能ですか?
追加説明を出力してください – e4c5
私は質問を編集して、出力を説明します – Baurzhan
誰かが私を助けることができますか? – Baurzhan