MySQLバージョンを5.0から5.5に更新します。そして私は勉強するのが初めてですmysql partition
。まず、次のように入力します。
'%partition%'のような変数を表示する
Variable_name Value
have_partitioning YES
新しいバージョンがをサポートしていることを確認してくださいpartition
。テーブルを10分ごとにパーティション分割してから、テストのためにこのテーブルに巨大なデータをINSERT、UPDATE、QUERYしようとしました。
まず、新しいテーブルを作成する必要があります。コードを入力します。
CREATE TABLE test (
`id` int unsigned NOT NULL auto_increment,
`words` varchar(100) collate utf8_unicode_ci NOT NULL,
`date` varchar(10) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `index` (`words`)
)
ENGINE=MyISAM
DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci
AUTO_INCREMENT=0
PARTITION BY RANGE (MINUTE(`date`))
(
PARTITION p0 VALUES LESS THAN (1322644000),
PARTITION p1 VALUES LESS THAN (1322644600) ,
PARTITION p2 VALUES LESS THAN (1322641200) ,
PARTITION p3 VALUES LESS THAN (1322641800) ,
PARTITION p4 VALUES LESS THAN MAXVALUE
);
アラートを返します:#1564 - This partition function is not allowed
、それで、この問題は何ですか?ありがとう。
アップデート
に変更date
しint NOT NULL
、に変更PARTITION BY RANGE MINUTE(date)
しますPARTITION BY RANGE COLUMNS(date)
CREATE TABLE test (
`id` int unsigned NOT NULL auto_increment,
`words` varchar(100) collate utf8_unicode_ci NOT NULL,
`date` int NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `index` (`words`)
)
ENGINE=MyISAM
DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci
AUTO_INCREMENT=0
PARTITION BY RANGE COLUMNS(`date`)
(
PARTITION p0 VALUES LESS THAN (1322644000),
PARTITION p1 VALUES LESS THAN (1322644600) ,
PARTITION p2 VALUES LESS THAN (1322641200) ,
PARTITION p3 VALUES LESS THAN (1322641800) ,
PARTITION p4 VALUES LESS THAN MAXVALUE
);
その後、新しいエラーが発生しました:#1214 - The used table type doesn't support FULLTEXT indexes