如何讓MySQL使用具有下表結構和查詢的鍵/索引?讓MySQL使用一個索引/鍵值,其中1列和2列依次爲
-- the table
CREATE TABLE `country` (
`id` int(11) NOT NULL auto_increment,
`expiry_date` datetime NOT NULL,
`name` varchar(50) collate utf8_unicode_ci NOT NULL,
`symbol` varchar(5) collate utf8_unicode_ci NOT NULL,
`exchange_rate` decimal(11,5) NOT NULL default '1.00000',
`code` char(3) collate utf8_unicode_ci NOT NULL,
`currency_code` varchar(3) collate utf8_unicode_ci NOT NULL,
`display_order` smallint(6) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `code` (`code`),
KEY `currency_code` (`currency_code`),
KEY `display_order` (`expiry_date`,`name`,`display_order`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- the query
SELECT `country`.*
FROM `country`
WHERE `country`.`expiry_date` = 0
ORDER BY `country`.`display_order` ASC, `country`.`name` ASC;
我想要得到它,因爲結果與180的查詢時間0.0013s,是迄今爲止頁面(3倍於下一個慢長)最慢的查詢使用的密鑰。根據我的理解,查詢應該使用display_order
索引/鍵。
沒有,你應該在display_order創建一個單獨的指標! – 2011-04-18 20:47:20
和一個單獨的「名字」 – 2011-04-18 20:47:58
對不起,不確定你的意思是什麼Q.C.我應該爲每個領域有單獨的索引嗎? – 2011-04-18 20:49:04