主鍵與唯一性索引

2021-06-06 05:04:09 字數 702 閱讀 5597

其實指定列的索引就相當於對指定的列進行排序,為什麼要排序呢?因為排序有利於對該列的查詢,可以大大增加查詢效率。(那麼可能有人認為應該對所有的列排序,這樣就可以增加整個資料庫的查詢效率?這樣的想法是錯誤的,原因是建立索引也是要消耗系統資源的,給每個表裡的每個列都建立索引那麼將對系統造成極大的負擔,那就更別提效率了!)---------簡單的說建立乙個列的索引,就相當與建立乙個列的排序。 

主鍵其實就是乙個索引,但是這個索引跟一般的索引有所不同,不同在於主鍵所在的列裡的每乙個的記錄都是唯一的,也可以說不能在主鍵裡出現相同的記錄,在同乙個表裡只能有乙個主鍵。(主鍵等於索引,索引不一定等於主鍵)----------簡單的說主鍵就是所在列不能出現相同記錄的特殊索引,而且這個索引只能在表裡出現一次。

1.主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵;  

2.乙個表中可以有多個唯一性索引,但只能有乙個主鍵;  

3.主鍵列不允許空值,而唯一性索引列允許空值。

主鍵在表中有唯一標識的作用,不可重複,不能為空;  

當其它表建立外來鍵關聯當前表時,只可以關聯主鍵。   

唯一索引,確切的說是唯一約束,   

create unique index index_id on(id); 

是用來限制當前表插入時建立唯一約束的字段不可重複。  

乙個是做為唯一標識,先唯一後標識;   另乙個是插入時做唯一限制。    

主鍵與唯一性索引

其實指定列的索引就相當於對指定的列進行排序,為什麼要排序呢?因為排序有利於對該列的查詢,可以大大增加查詢效率。那麼可能有人認為應該對所有的列排序,這樣就可以增加整個資料庫的查詢效率?這樣的想法是錯誤的,原因是建立索引也是要消耗系統資源的,給每個表裡的每個列都建立索引那麼將對系統造成極大的負擔,那就更...

主鍵和唯一性索引的區別

主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵。所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,乙個表只能有乙個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新 刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述作用外,常常與外來鍵構成參照完整性約束,防止出現資料...

mysql主鍵,唯一性,索引的重要性

mysql建立 為什麼一定需要索引呢?有部分設計者感覺表資料有沒有主鍵的區別只是為了區分是否唯一,根據mysql資料表的不同資料引擎,其實,還是有區別的,inoodb引擎的表資料,資料結構是使用主鍵為索引的b tree結構組織資料,如果我們建立 時沒有主鍵,mysql會自動使用不可見的並且具有唯一性...