Така че за вашите полета id
(PK), userId
(FK) и skillId
(FK),mysql автоматично ще създаде индекс на (id)
(уникален) и индекс на (userId)
(неуникален) и индекс на (skillId)
(неуникален).
Все още имате нужда от допълнителен уникален индекс на (userId, skillId)
.
Това може да замени неуникалния индекс на (userId)
защото оптимизаторът може да използва (userId, skillId)
индексира винаги, когато трябва да търси по userId
. Въпреки това, създаването и изтриването на индекси, когато индексът се използва от външен ключ в mysql, може да бъде тромаво, така че може просто да искате да добавите съставния уникален индекс.