0

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、それで、この問題は何ですか?ありがとう。

アップデート

に変更dateint 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

4

3 に答える 3

1

申し訳ありませんが、mysqlはフルテキストとパーティションを同時にサポートしていません。

パーティショニングの制限を参照してください

FULLTEXTインデックス。 パーティション化されたテーブルは、FULLTEXTインデックスまたは検索をサポートしていません。これには、MyISAMストレージエンジンを採用したパーティションテーブルが含まれます。

于 2011-11-30T12:29:52.133 に答える
0

1つの問題は

select MINUTE('2008-10-10 56:56:98')nullを返す場合、その理由は、Minute関数が時刻または日時の値から分を返すためです。ここで、あなたの場合のように、日付はvarcharです。

于 2011-11-30T09:37:01.613 に答える
0

MINUTE関数は、日付/日時式のいずれかで戻ります。繰り返しますが、パーティショニングキーは整数列または整数に解決される式のいずれかである必要がありますが、この場合はVARCHARです。

于 2011-11-30T09:42:37.123 に答える