這個問題很刁鑽! 答案是錯的。 的確在mysql數據庫innodb引擎里面,主鍵的確就是聚集索引。 但是myisam引擎里面主鍵也不是聚集索引。 另外在sql server中還可以顯示的指定聚集索引。 CREATE TABLE student( stud_id INT IDENTITY ...
當我們對一個表建立一個主鍵時,默認會給該主鍵列添加一條聚集索引,這是數據庫內部自動建立的,唯一性約束也會默認創建一個非聚集索引。 上面我們建立了一個主鍵id 和唯一性約束的name列,查看表可以看到這時產生了兩個索引 聚集索引是一個寶貴的資源,在一些表的中有時我們永遠不會用到主鍵來作為查詢條件,或者作為其他表的外鍵,這時主鍵的聚集索引 就顯得大才小用了,我們希望將聚集索引建立在其他真正需要的字段, ...
2013-06-07 22:06 0 10028 推薦指數:
這個問題很刁鑽! 答案是錯的。 的確在mysql數據庫innodb引擎里面,主鍵的確就是聚集索引。 但是myisam引擎里面主鍵也不是聚集索引。 另外在sql server中還可以顯示的指定聚集索引。 CREATE TABLE student( stud_id INT IDENTITY ...
前言 最近在一次面試中,討論了一個這樣的問題:主鍵和索引有什么區別?當時我的回答是這樣的:“主鍵就是加了唯一性約束的聚集索引。” “你確定你所說的是對的?” 面試官反問到。 “應該是對的。” 我不加思索地回答道。 “你回去后研究一下這個問題吧。” 難道我真的錯了? 第一次嘗試 ...
前言 最近在一次面試中,討論了一個這樣的問題:主鍵和索引有什么區別?當時我的回答是這樣的:“主鍵就是加了唯一性約束的聚集索引。” “你確定你所說的是對的?” 面試官反問到。 “應該是對的。” 我不加思索地回答道。 “你回去后研究一下這個問題吧。” 難道我真的錯了? 第一次嘗試 ...
前言 最近在一次面試中,討論了一個這樣的問題:主鍵和索引有什么區別?當時我的回答是這樣的:“主鍵就是加了唯一性約束的聚集索引。” “你確定你所說的是對的?” 面試官反問到。 “應該是對的。” 我不加思索地回答道。 “你回去后研究一下這個問題吧。” 難道我真的錯了? 第一次 ...
在今天的文章里我想談下SQL Server里非常重要的話題,當人們第一次使用SQL Server時是最會混淆的。即主鍵約束(Primary Key constraint)和聚集索引(Clustered Index)的區別。 什么是主鍵(Primary Key) 首先讓我們談下主鍵約束 ...
關於這幾個概念的理解 首先要知道索引是一種數據結構,這個數據結構是由數據庫本身來維護的,當刪除、插入、更新數據的時候,索引自身的數據結構也在不斷維護中。 索引是基於二叉樹的結構來維護的,主要是為了快速檢索數據 二叉樹結構中有葉節點和非葉節點,葉節點就是沒有分支的最后節點,顧名思義就像葉子一樣 ...
SQLSERVER聚集索引和主鍵的誤區 很多人會把Primary Key和聚集索引搞混起來,或者認為這是同一個東西。這個概念是非常錯誤的。 主鍵是一個約束(constraint),他依附在一個索引上,這個索引可以是聚集索引,也可以是非聚集索引。 所以在一個(或一組)字段上有主鍵 ...
為列創建索引實際上就是為列進行排序,以方便查詢.建立一個列的索引,就相當與建立一個列的排序。 主鍵是唯一的,所以創建了一個主鍵的同時,也就這個字段創建了一個唯一的索引, 唯一索引實際上就是要求指定的列中所有的數據必須不同。 主鍵一唯一索引的區別 ...