0
如果我有如下表:爲什麼MySQL不會使用我的索引?
CREATE TABLE `mytable` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `name_first_letter` (`name`(1)),
KEY `name_all` (`name`)
)
將MySQL的不斷選擇通過name_all
指數使用name_first_letter
指數?如果是這樣,在什麼情況下會發生?
我已經做了一些快速測試,我不知道如果MySQL甚至會選擇name_first_letter
指數使用索引提示時:
-- This uses name_all
EXPLAIN SELECT name FROM mytable
WHERE SUBSTRING(name FROM 1 FOR 1) = 'T';
-- This uses no index at all
EXPLAIN SELECT name FROM mytable USE INDEX (name_first_letter)
WHERE SUBSTRING(name FROM 1 FOR 1) = 'T';
任何MySQL的大師們都可以闡明這一些輕?這個專欄上有沒有關於name_first_letter
的點?
編輯:問題標題不太對。