mysql key index區別


看似有差不多的作用,加了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).

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM