Vì vậy, đối với các trường của bạn, id
(PK), userId
(FK) và skillId
(FK), mysql sẽ tự động tạo chỉ mục trên (id)
(duy nhất) và lập chỉ mục trên (userId)
(không phải duy nhất) và một chỉ mục trên (skillId)
(không phải duy nhất).
Bạn vẫn cần một chỉ mục duy nhất bổ sung trên (userId, skillId)
.
Điều này có thể thay thế chỉ mục không phải là duy nhất trên (userId)
vì trình tối ưu hóa có thể sử dụng (userId, skillId)
lập chỉ mục bất cứ khi nào nó cần tra cứu theo userId
. Tuy nhiên, việc tạo và giảm chỉ mục khi chỉ mục được sử dụng bởi khóa ngoại trong mysql có thể phức tạp, vì vậy bạn có thể chỉ muốn thêm chỉ mục duy nhất tổng hợp.