MySQL中Index與Key的區別

看似有差不多的作用,加了Key的表與建立了Index的表,都可以進行快速的數據查詢。
他們之間的區別在於處於不同的層面上。

Key即鍵值,是關係模型理論中的一部份,比如有主鍵(Primary Key),外鍵(Foreign Key)等,用於數據完整性檢否與唯一性約束等。

而Index則處於實現層面,比如可以對錶個的任意列建立索引,那麼當建立索引的列處於SQL語句中的Where條件中時,就可以得到快速的數據定 位,從而快速檢索。至於Unique Index,則只是屬於Index中的一種而已,建立了Unique Index表示此列數據不可重複,猜想MySQL對Unique Index類型的索引可以做進一步特殊優化吧。

於是乎,在設計表的時候,Key只是要處於模型層面的,而當需要進行查詢優化,則對相關列建立索引即可。

另外,在MySQL中,對於一個Primary Key的列,MySQL已經自動對其建立了Unique Index,無需重複再在上面建立索引了。

搜索到的一段解釋:

Note that “primary” is called PRIMARY KEY not INDEX.
KEY is something on the logical level, describes your table and database design (i.e. enforces referential integrity …)
INDEX is something on the physical level, helps improve access time for table operations.
Behind every PK there is (usually) unique index created (automatically).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章