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