MySQL中Index與Key的區別

2021-08-31 04:33:59 字數 917 閱讀 3282

2010/03/12 — admin

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

引用自:

MySQL中Key與Index的區別和聯絡

在mysql學習中遇到了key和index兩個關鍵字,對錶結構中索引的不理解,查詢資料進行歸納總結。key 是資料庫的物理結構,它包含兩層意義,一是約束 偏重於約束和規範資料庫的結構完整性 二是索引 輔助查詢用的 包括primary key,unique key,foreign key 等。mysq...

Mysql中key和index的區別點整理

我們先來看下 alter table reportblockdetail add key taskcode taskcode alter table reportblockdetail drop key taskcode 嗯這確實是比較容易混淆的地方。在我們使用mysql中可能壓根不會注意這個問題,...

MySQL裡的Key和Index有什麼不同

key 是資料庫的物理結構,它包含兩層意義,一是約束 偏重於約束和規範資料庫的結構完整性 二是索引 輔助查詢用的 包括primary key,unique key,foreign key 等。mysql中的key是同時具有constraint和index的意義。index是資料庫的物理結構,它只是輔...