次の表があります。
CREATE TABLE `deal_keyword` (
`deal_id` int(11) unsigned NOT NULL default '0',
`keyword_id` int(11) unsigned NOT NULL default '0',
`area_id` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`deal_id`,`keyword_id`),
KEY `area_id` (`area_id`,`keyword_id`,`deal_id`)
) TYPE=MyISAM;
テスト用にいくつかのレコードを入力します。
insert into deal_keyword values(1,2,3);
insert into deal_keyword values(2,2,3);
insert into deal_keyword values(3,2,3);
insert into deal_keyword values(4,1,3);
insert into deal_keyword values(5,1,3);
insert into deal_keyword values(6,1,3);
insert into deal_keyword values(7,3,3);
insert into deal_keyword values(8,3,3);
この SQL を実行すると:
explain select * from `deal_keyword` where `area_id`=3 && `keyword_id` in(1,3) order by `deal_id`;
+--------------+-------+---------------+---------+---------+------+------+------------------------------------------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+--------------+-------+---------------+---------+---------+------+------+------------------------------------------+
| deal_keyword | range | area_id | area_id | 8 | NULL | 4 | Using where; Using index; Using filesort |
+--------------+-------+---------------+---------+---------+------+------+------------------------------------------+
このSQLの「ファイルソートの使用」を解決するにはどうすればよいですか?
手伝ってくれてありがとう :)