Pro vaše pole tedy id
(PK), userId
(FK) a skillId
(FK),mysql automaticky vytvoří index na (id)
(unikátní) a index na (userId)
(neunikátní) a index na (skillId)
(nejedinečné).
Stále potřebujete další jedinečný index na (userId, skillId)
.
To by mohlo nahradit nejedinečný index na (userId)
protože optimalizátor může použít (userId, skillId)
index, kdykoli potřebuje vyhledat podle userId
. Vytváření a odstraňování indexů, když je index používán cizím klíčem v mysql, může být těžkopádné, takže možná budete chtít přidat složený jedinečný index.