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:
我該如何解決 「使用文件排序」 爲這個SQL?
感謝您的幫助:)
嘗試在「deal_id」上放置單獨的索引。您在'order by'子句中自己使用它,並且由於它是多字段組合鍵的最後一個成員,所以'area_id'索引不能用於排序查找。 –
你讀過https://dev.mysql.com/doc/refman/5.5/en/order-by-optimization.html嗎? –
@ marc-b謝謝,如果我爲這個SQL創建一個索引,我該怎麼辦? (這是MYISAM表,所以我認爲deal_id上的單個索引沒有幫助) – Koerr