【发布时间】:2012-10-30 16:05:13
【问题描述】:
如果我有一个包含 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
【问题讨论】:
标签: mysql indexing database-indexes