0
私のテーブルxm_cは次のように作成されていない:
選択:MySQLのフルテキストインデックスは、AGAINST MATCH()のために使用されているが、ために=
CREATE TABLE `xm_c` ( `category_id` char(16) NOT NULL default '', `label` char(64) NOT NULL default '', `flags` smallint(5) unsigned default NULL, `d0` date default NULL, `d1` date default NULL, `ct` int(6) unsigned default NULL, `t_update` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`category_id`), **FULLTEXT KEY `label` (`label`)** ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DELAY_KEY_WRITE=1;
FULLTEXTインデックスは以下のクエリで使用されていません* xm_cからどこのラベル= 'TomCruise';
場所、それがここで使用される:
選択* xm_cからどこ( 'トム・クルーズ')との試合(ラベル)。
mysql> explain select * from xm_c where MATCH(label) AGAINST('TomCruise'); > id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra **1 | SIMPLE | xm_c | fulltext | label | label | 0 | | 1 | Using where** mysql> explain select * from xm_c where label = 'TomCruise'; > id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra **1 | SIMPLE | xm_c | ALL | label | NULL | NULL | NULL | 5673360 | Using where**
誰かがこれを説明することはできますか?両方のクエリでINDEXを使用するべきではありませんか?
FULLTEXT INDICESを使用する際に構文制約がありますか?
ありがとうございました。私が理解しているように、より速い検索を可能にするために、列または列のグループに対して索引が作成されます。その列を含む検索では、対応する列の索引を使用しないでください。 – raghu