1. 程式人生 > >主鍵和唯一索引有什麼區別

主鍵和唯一索引有什麼區別


CREATE TABEL T(
ID INT
);
CREATE UNIQUE INDEX T_INDEX_ID ON T(ID);

CREATE TABEL T(
ID INT PRIMARY KEY
);

  主鍵是表中的一個或多個欄位,它的值用於惟一地標識表中的某一條記錄.;使用索引可快速訪問資料庫表中的特定資訊。
  索引是對資料庫表中一列或多列的值進行排序的一種結構,只有當經常查詢索引列中的資料時,才需要在表上建立索引。索引佔用磁碟空間,並且降低新增、刪除和更新行的速度。當然索引也有好處就是查詢速度快,它利還是大於弊的所以請慎重使用索引。


  比如:一個學生表(t_stu )有1000條資料,給它id列建個主鍵和索引,想查詢id=1000;的這條資訊,如果沒有索引,它就一條一條的比對查詢,系統執行1000次才找到,要是建立了索引,查詢id=1000的這條資訊,系統只執行一次就找到了。

相關推薦

唯一索引什麼區別

CREATE TABEL T( ID INT ); CREATE UNIQUE INDEX T_INDEX_ID ON T(ID); 和 CREATE TABEL T( ID INT PRIMARY KEY );   主鍵是表中的一個或多個欄位,它的值用於惟一地標識表中的某一條記錄.;使用索引可快速訪問資料

Oracle中唯一索引區別oracle中聯合的作用

 在建立主鍵的同時會生成對應的唯一索引,主鍵在保證資料唯一性的同時不允許為空, 而唯一索引可以有一個為空的資料項,一個表中只能有一個主鍵,但是一個主鍵可以有多個欄位,一個表中可以有多個唯一索引。 聯合主鍵只是讓記錄聯合的那幾個欄位總體上是唯一的,比如id1 id2 id3三

關係資料庫中唯一索引區別

兩者在可空、唯一性、排序等表面特徵上並沒有什麼區別,而且主鍵都有唯一索引,所以常被人問起它們之間有什麼區別。簡要地說,主鍵和唯一索引,或者鍵和索引之間的最主要區別在於:鍵是一個邏輯層面的概念,涉及到資料模式的設計。從語法角度看,鍵被定義為一種約束。比方說,如果想定義外來鍵(或稱參考約束),那麼相關列就必須先定

mysql索引唯一索引、聯合索引區別索引的建立原則注意事項)

索引對資料庫效能的影響? 本質:縮小查詢範圍。大大減少需要掃描的資料量。大大提高查詢的速度,降低寫的速度,佔用磁碟。將隨機I/O變成順序I/O 特大的表怎麼解決查詢問題? 分割槽。 主鍵索引和唯一索引的區別? 一個表只能有一個主鍵索引,但可以有多個唯一索引, 主鍵索引是唯一索

唯一唯一索引區別

一般,我們看到術語“索引”和“鍵”交換使用,但實際上這兩個是不同的。索引是儲存在資料庫中的一個物理結構,鍵純粹是一個邏輯概念。鍵代表建立來實施業務規則的完整性約束。索引和鍵的混淆通常是由於資料庫使用索引來實施完整性約束。 接下來我們看看資料庫中的主鍵約束、唯一鍵約束和唯一索引的區別。 SQL>

mysql中,索引唯一索引,聯合索引區別

索引是一種特殊的檔案(InnoDB資料表上的索引是表空間的一個組成部分),它們包含著對資料表裡所有記錄的引用指標。 普通索引(由關鍵字KEY或INDEX定義的索引)的唯一任務是加快對資料的訪問速度。 普通索引允許被索引的資料列包含重複的值。如果能確定某個資料列將只包含彼此各

普通索引唯一索引區別、性能差異,以及其他索引簡介

整數 排列 唯一索引 同名 關聯 超過 結果 其它 加載 唯一索引和普通索引使用的結構都是B-tree,執行時間復雜度都是O(log n)。 1、普通索引  普通索引(由關鍵字KEY或INDEX定義的索引)的唯一任務是加快對數據的訪問速度。因此,應該只為那些最經常出現在查

oracle新增、刪除、啟用、禁用唯一約束

-- 新增主鍵約束 -- 第一種寫法簡單,但constraint名稱由oracle確定,含義不明確,如SYS_C007490 alter table t modify id primary key; alter table t add constraint t_pk primary ke

普通索引唯一索引區別

轉自:https://blog.csdn.net/u014071328/article/details/78780683 唯一索引和普通索引使用的結構都是B-tree,執行時間複雜度都是O(log n)。 1、普通索引   普通索引(由關鍵字KEY或INDEX定義的索引)的唯一任務是加快

PRIMARY KEY & UNIQUE(唯一索引

這裡是修真院後端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析後端知識/技能,本篇分享的是: 【PRIMARY KEY & UNIQUE(主鍵、唯一索引)】   P

資料庫設計中是設計聯合還是唯一索引+單一好?

在一個表中user_id和type兩個欄位唯一確定一條記錄,那麼在設計中是將這兩個欄位設計為聯合主鍵呢,還是建立一個邏輯主鍵id,而將這兩個欄位設計為唯一索引呢?這兩種方式有什麼區別?哪個更好呢?具體還

普通索引唯一索引區別、效能差異,以及其他索引簡介

今天在我的虛擬機器中佈置了環境,測試抓圖如下: 抓的這幾個都是第一次執行的,刷了幾次後,取平均值,效率大致相同,而且如果在一個列上同時建唯一索引和普通索引的話,mysql會自動選擇唯一索引。 谷歌一下: 唯一索引和普通索引使用的結構都是B-tree,執行時間複

(primary key)唯一索引(unique index)區別

主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵。 所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新、刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述作用外,常常與外來鍵構成參照完整性約束,防止出現數

sql:(primary key)唯一索引(unique index)區別

主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵。  所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新、刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述作用外,常常與外來鍵構成參照完整性約束

MySQL之(primary key)唯一索引(unique index)區別

主鍵一定是唯一性索引,唯一性索引並不一定就是主鍵。  所謂主鍵就是能夠唯一標識表中某一行的屬性或屬性組,一個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標識某一行記錄,所以可以確保執行資料更新、刪除的時候不會出現張冠李戴的錯誤。主鍵除了上述作用外,常常與外來鍵構成

索引區別

存在 這一 需要 實體完整性 主鍵 可能 數據庫 創建表 但是 主鍵(PRIMARY KEY) 表通常具有包含唯一標示表中每一行的值的一列或者一組列。這樣的一列或者多列稱為表的主鍵(PK),用於強制表的屍體完整性。在創建或者修改表時,您可以通過定義PK約束來創建主鍵。 一個

唯一性約束、約束、唯一索引區別

1.主鍵約束(PRIMARY KEY) 主鍵用於唯一地標識表中的每一條記錄 可以定義一列或多列為主鍵 主鍵列上沒有任何兩行具有相同值(即重複值) 主鍵列上也不能為空值 2.唯一性約束(UNIQUE) 唯一性約

建立Primary keyUnique唯一索引

在MySQL中,我們進行資料儲存時,為了避免插入重複資料,常常通過給資料表新增主鍵或者索引的方法來解決,在插入過程中,如果遇到重複資料就會提示“uplicate entry 'D550-49' for

mysql-不恰當的update語句使用索引導致mysql死鎖

行修改 sql錯誤 狀態 還要 錯誤日誌 示意圖 http 概率 最小 背景知識:MySQL有三種鎖的級別:頁級、表級、行級。 MyISAM和MEMORY存儲引擎采用的是表級鎖(table-level locking);BDB存儲引擎采用的是頁面鎖(page-level l

Sql Server中的遊標最好只能用於唯一的表

table com ref where dynamic lint set 最好 mic 遊標cursor,我想大多數人都在sql server裏面用過。當一個表數據量不太大的時候,遊標還是可以用的,畢竟遊標是循環一個表中每一行數據的最簡便辦法。但是如果你用一個遊標去循環一個