關係數據庫依賴於主鍵,它是數據庫物理模式的基石。主鍵在物理層面上只有兩個用途:
唯一地標識一行。
做爲一個能夠被外鍵有效引用的對象。
索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含着對數據表裏全部記錄的引用指針。下面是主鍵和索引的一些區別與聯繫。
1. 主鍵必定是惟一性索引,惟一性索引並不必定就是主鍵。
所謂主鍵就是可以惟一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但能夠有多個候選索引。由於主鍵能夠惟一標識某一行記錄,因此能夠確保執行數據更新、刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述做用外,經常與外鍵構成參照完整性約束,防止出現數據不一致。數據庫在設計時,主鍵起到了很重要的做用。
主鍵能夠保證記錄的惟一和主鍵域非空,數據庫管理系統對於主鍵自動生成惟一索引,因此主鍵也是一個特殊的索引。
2. 一個表中能夠有多個惟一性索引,但只能有一個主鍵。
3. 主鍵列不容許空值,而惟一性索引列容許空值。
4. 索引能夠提升查詢的速度。
其實主鍵和索引都是鍵,不過主鍵是邏輯鍵,索引是物理鍵,意思就是主鍵不實際存在,而索引實際存在在數據庫中,主鍵通常都要建,主要是用來避免一張表中有相同的記錄,索引通常能夠不建,但若是須要對該表進行查詢操做,則最好建,這樣能夠加快檢索的速度。
FAQ
1. 主鍵是個什麼?
我來來具體的東西說吧,書你們都看過吧,沒看過的找本翻一下,看下它每頁是否是有個頁碼,咱們的數據表主鍵就至關因而這個頁碼,明白了吧。
2. 那麼索引是什麼呢?
咱們還拿書來講,索引至關於書的目錄,有了目錄咱們能夠很快的知道這本書的基本內容和結構,數據索引也同樣,它能夠加快數據表的查詢速度。
3. 主鍵主索引類比,及其餘們的做用?
主鍵是爲了標識數據庫記錄惟一性,不容許記錄重複,且鍵值不能爲空,主鍵也是一個特殊索引。
數據表中只容許有一個主鍵,可是能夠有多個索引。
使用主鍵會數據庫會自動建立主索引,也能夠在非主鍵上建立索引,方便查詢效率。
索引能夠提升查詢速度,它就至關於字典的目錄,能夠經過它很快查詢到想要的結果,而不須要進行全表掃描。
主鍵索引外索引的值能夠爲空。
主鍵也能夠由多個字段組成,組成複合主鍵,同時主鍵確定也是惟一索引。
惟一索引則表示該索引值惟一,能夠由一個或幾個字段組成,一個表能夠有多個惟一索引。數據庫