我在列上創建了唯一索引,然後使用ALTER TABLE添加了外鍵。 MySQL在列的唯一索引之上添加了一個非唯一索引。非唯一索引是否必需?它以任何方式加快速度?外鍵可以使用唯一索引嗎?
0
A
回答
1
Does it speed things up in any way?
首先,索引並不總是加快速度。索引正在減慢更新,插入和刪除語句,因爲索引必須隨數據一起更新。
其次,有些情況下,mysql-optimizer可能會決定使用錯誤的索引,而使用另一個索引可能會更快。
Is the non-unique index necessary?
號也看到您的用例MySQL文檔,如果你會做它的其他方式輪:
http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
MySQL的需要外鍵和參考指標密鑰,以便 外鍵檢查可以很快並且不需要表掃描。在 引用表中,必須有一個索引,其中外鍵 列作爲第一列以相同順序列出。如果它不存在 ,則會在引用表上自動創建這樣一個 索引。 如果您創建 另一個可用於強制實施外鍵約束的索引,則此索引可能稍後會自動丟棄。
相關問題
- 1. $都可以使用多鍵索引嗎?
- 2. 每個外鍵的唯一索引
- 3. 非唯一索引中的外鍵? (oracle)
- 4. 外鍵可以唯一主鍵
- 5. Sql Server唯一鍵也是索引嗎?
- 6. 外鍵引用PK VS外鍵引用唯一鍵
- 7. 外鍵可以引用多個表嗎?
- 8. 從Oracle使用JDBC獲取所有外鍵唯一索引
- 9. 使用peewee爲外鍵表創建唯一索引
- 10. 唯一索引或唯一鍵?
- 11. 如何刪除外鍵引用的唯一索引?
- 12. 多列唯一索引鍵
- 13. 我們可以有一個非唯一索引PK嗎?
- 14. Matlab:我可以通過唯一名稱引用數組索引嗎?
- 15. 外鍵引用的主鍵可以是mysql中的varchar(255)嗎?
- 16. 非主鍵列可以從外鍵引用嗎?
- 17. 唯一索引與非唯一索引
- 18. 我應該避免使用主鍵並使用索引唯一的列嗎?
- 19. 我可以使用lucene索引RDB嗎?
- 20. 可以使用一個外鍵引用兩個不同的表嗎?
- 21. 外鍵可以爲空嗎?
- 22. 使用外鍵組合鍵可以引用列和固定值嗎?
- 23. 使用外鍵,我可以在複合主鍵中引用固定值嗎?
- 24. 如何在cassandra中使用主鍵以外的唯一鍵?
- 25. SQLite表可以包含除主鍵以外的更多唯一字段嗎?
- 26. 索引外鍵
- 27. 一個外鍵引用多個唯一鍵
- 28. 外鍵列是否可以引用父表中包含NULL的唯一列?
- 29. 我可以使用可選外鍵具有自引用逆導航屬性嗎?
- 30. 在外鍵約束列上創建非唯一索引
爲什麼您在包含外鍵的列上創建唯一索引,而不是依賴推測的鏈表中存在的唯一約束? – 2014-10-07 18:27:12
@GeorgeCummins確保「Something」只映射一次到「Something」? – dognose 2014-10-07 18:32:09
將外鍵和索引添加到除主鍵以外的其他列中。上述異常行爲發生在引用表(子表)上。 – Waffles 2014-10-07 22:34:32