主鍵:關聯式資料庫依賴於主鍵,它是資料庫物理模式的基石。
主鍵在物理層面上只有兩個用途:
a.唯一的標識一行
b.作為乙個可以被外來鍵有效引用的物件
索引:索引是一種特殊的檔案,它們包含著對資料表裡所有記錄的引用指標。
主鍵與索引的區別與聯絡:
a.主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,乙個表只能有乙個主鍵但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新,刪除的時候不會出現張冠李戴的錯誤,主鍵除了上述作用以外,常常與外來鍵構成參照完整性約束,防止出現資料不一致,資料庫在設計時主鍵起到了很重要的作用。主鍵可以保證記錄的唯一和主鍵域非空,資料庫管理系統對於主鍵自動生成唯一索引,所以主鍵也是乙個特殊的索引。
b.乙個表中可以有多個唯一性索引,但主鍵只能有乙個
c.主鍵列不允許空值,而唯一性索引列允許空值
d.索引可以提高查詢速度
總結:其實主鍵和索引都是鍵,不過主鍵是邏輯鍵,索引是物理鍵,意思就是主鍵不實際存在而索引實際存在在資料庫中,主鍵一般都要建,主要用來避免一張表中有相同的記錄,索引一般可以不簡單如果需要對該錶進行查詢操作,則最好建這樣可以加快檢索的速度。
e.也可以在非主鍵上建立索引加快查詢效率
mysql非主鍵索引 主鍵索引和非主鍵索引的區別
1.什麼是最左字首原則?以下回答全部是基於mysql的innodb引擎 例如對於下面這一張表 如果我們按照 name 欄位來建立索引的話,採用b 樹的結構,大概的索引結構如下 如果我們要進行模糊查詢,查詢name 以 張 開頭的所有人的id,即 sql 語句為 select id from tabl...
mysql非主鍵索引 主鍵索引和非主鍵索引解析
1.什麼是最左字首原則?以下回答全部是基於mysql的innodb引擎 例如對於下面這一張表 如果我們按照 name 欄位來建立索引的話,採用b 樹的結構,大概的索引結構如下 如果我們要進行模糊查詢,查詢name 以 張 開頭的所有人的id,即 sql 語句為 select id from tabl...
mysql主鍵索引 MySQL索引之主鍵索引
在mysql裡,主鍵索引和輔助索引分別是什麼意思,有什麼區別?上次的分享我們介紹了聚集索引和非聚集索引的區別,本次我們繼續介紹主鍵索引和輔助索引的區別。1 主鍵索引 主鍵索引,簡稱主鍵,原文是primary key,由乙個或多個列組成,用於唯一性標識資料表中的某一條記錄。乙個表可以沒有主鍵,但最多只...