主鍵是一種約束,唯一索引是一種索引,兩者在本質上是不同的。主鍵建立後一定包含乙個唯一性索引,唯一性索引並不一定就是主鍵。
唯一性索引列允許空值,而主鍵列不允許為空值。主鍵列在建立時,已經預設為非空值 + 唯一索引了。
主鍵可以被其他表引用為外來鍵,而唯一索引不能。
乙個表最多只能建立乙個主鍵,但可以建立多個唯一索引。主鍵和唯一索引都可以有多列。
主鍵更適合那些不容易更改的唯一標識,如自動遞增列、身份證號等。在 rbo 模式下,主鍵的執行計畫優先順序要高於唯一索引。 兩者可以提高查詢的速度。
索引是一種特殊的檔案(innodb資料表上的索引是表空間的乙個組成部分),它們包含著對資料表裡所有記錄的引用指標。
總體來說:主鍵相當於一本書的頁碼,索引相當於書的目錄。
其實主鍵和索引都是鍵,不過主鍵是邏輯鍵,索引是物理鍵,意思就是主鍵不實際存在,而索引實際存在在資料庫中,主鍵一般都要建,主要是用來避免一張表中有相同的記錄,索引一般可以不建,但如果需要對該錶進行查詢操作,則最好建,這樣可以加快檢索的速度。
主鍵索引和唯一索引的區別
區別 主鍵是一種約束,唯一索引是一種索引,兩者在本質上是不同的。主鍵建立後一定包含乙個唯一性索引,唯一性索引並不一定就是主鍵。唯一性索引列允許空值,而主鍵列不允許為空值。主鍵列在建立時,已經預設為空值 唯一索引了。主鍵可以被其他表引用為外來鍵,而唯一索引不能。乙個表最多只能建立乙個主鍵,但可以建立多...
主鍵和唯一索引的區別
區別 主鍵是一種約束,唯一索引是一種索引,兩者在本質上是不同的。主鍵建立後一定包含乙個唯一性索引,唯一性索引並不一定就是主鍵。唯一性索引列允許空值,而主鍵列不允許為空值。主鍵列在建立時,已經預設為空值 唯一索引了。主鍵可以被其他表引用為外來鍵,而唯一索引不能。乙個表最多只能建立乙個主鍵,但可以建立多...
主鍵和唯一索引的區別
主鍵是一種約束,唯一索引是一種索引,兩者在本質上是不同的。區別 1.主鍵建立後一定包含乙個唯一性索引,唯一性索引並不一定就是主鍵。2.唯一性索引列允許空值,而主鍵列不允許為空值。3.主鍵列在建立時,已經預設為空值 唯一索引了。4.主鍵可以被其他表引用為外來鍵,而唯一索引不能。5.乙個表最多只能建立乙...