如果我在包含 2 个字段的表上有一个唯一索引,我应该在每个字段上添加另一个索引吗?
例子:
我的表如下所示:
CREATE TABLE IF NOT EXISTS `my_table` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`usersID` int(11) NOT NULL,
`userTypesID` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
然后我添加了一个唯一索引,它涵盖了usersID
和userTypesID
:
ALTER TABLE `my_table` ADD UNIQUE `usersID_userTypesID` ( `usersID` , `userTypesID` )
是否值得我再添加 2 个索引,一个上一个usersID
,另一个上userTypesID
?例如:
ALTER TABLE `my_table` ADD INDEX ( `usersID` )
ALTER TABLE `my_table` ADD INDEX ( `userTypesID` )
添加这些额外的索引会加速某些查询吗?如:
SELECT `usersID`
FROM `my_table`
WHERE `userTypesID` = 101
或者
SELECT `usersTypesID`
FROM `my_table`
WHERE `usersID` = 29