主键与聚集索引的区别
生活随笔
收集整理的這篇文章主要介紹了
主键与聚集索引的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主鍵可為聚集索引也可為非聚集索引。
兩者的比較
下面是一個簡單的比較表
?
| ? | 主鍵 | 聚集索引 |
| 用途 | 強制表的實體完整性 | 對數據行的排序,方便查詢用 |
| 一個表多少個 | 一個表最多一個主鍵 | 一個表最多一個聚集索引 |
| 是否允許多個字段來定義 | 一個主鍵可以多個字段來定義 | 一個索引可以多個字段來定義 |
| ? | ? | ? |
| 是否允許 null 數據行出現 | 如果要創建的數據列中數據存在null,無法建立主鍵。 創建表時指定的 PRIMARY KEY 約束列隱式轉換為 NOT NULL。 | 沒有限制建立聚集索引的列一定必須 not null . 也就是可以列的數據是 null 參看最后一項比較 |
| 是否要求數據必須唯一 | 要求數據必須唯一 | 數據即可以唯一,也可以不唯一。看你定義這個索引的 UNIQUE 設置。 (這一點需要看后面的一個比較,雖然你的數據列可能不唯一,但是系統會替你產生一個你看不到的唯一列) |
| ? | ? | ? |
| 創建的邏輯 | 數據庫在創建主鍵同時,會自動建立一個唯一索引。 如果這個表之前沒有聚集索引,同時建立主鍵時候沒有強制指定使用非聚集索引,則建立主鍵時候,同時建立一個唯一的聚集索引 | 如果未使用 UNIQUE 屬性創建聚集索引,數據庫引擎 將向表自動添加一個四字節 uniqueifier 列。 必要時,數據庫引擎 將向行自動添加一個 uniqueifier 值,使每個鍵唯一。此列和列值供內部使用,用戶不能查看或訪問。 |
?
http://www.cnblogs.com/teroy/p/3420686.html
轉載于:https://www.cnblogs.com/xiao-hei/p/3917804.html
總結
以上是生活随笔為你收集整理的主键与聚集索引的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Andoid 采用ListView三种显
- 下一篇: 小米蓝牙音响驱动_小米极蜂智能对讲机体验