Więc dla swoich pól, id (PK), userId (FK) i skillId (FK), mysql automatycznie utworzy indeks na (id) (unikalny) i indeks na (userId) (nieunikalne) i indeks na (skillId) (nie unikalny).
Nadal potrzebujesz dodatkowego unikalnego indeksu na (userId, skillId) .
Może to zastąpić nieunikalny indeks w (userId) ponieważ optymalizator może użyć (userId, skillId) indeksuj zawsze, gdy trzeba szukać według userId . Jednak tworzenie i usuwanie indeksów, gdy indeks jest używany przez klucz obcy w mysql może być kłopotliwe, więc możesz po prostu dodać złożony unikalny indeks.