mysql主鍵索引和普通索引之間的區(qū)別是什么

索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b-樹的形式保存。mysql提供多種索引類型供選擇:普通索引 、唯一性索引、主鍵索引? 、全文索引等等。下面本篇文章就來給大家介紹一下主鍵索引和普通索引之間的區(qū)別 ,希望對你們有所幫助。

mysql主鍵索引和普通索引之間的區(qū)別是什么

普通索引?

普通索引是最基本的索引類型,而且它沒有唯一性之類的限制。普通索引可以通過以下幾種方式創(chuàng)建:?

創(chuàng)建索引,例如

CREATE?INDEX??ON?tablename?(列的列表);

修改表,例如

ALTER?TABLE?tablename?ADD?INDEX?[索引的名字]?(列的列表);

創(chuàng)建表的時候指定索引,例如

CREATE?TABLE?tablename?(?[...],?INDEX?[索引的名字]?(列的列表)?);

主鍵索引?

主鍵是一種唯一性索引,但它必須指定為“PRIMARY KEY”。

主鍵一般在創(chuàng)建表的時候指定,例如

CREATE?TABLE?tablename?(?[...],?PRIMARY?KEY?(列的列表)?);

但是,我們也可以通過修改表的方式加入主鍵,例如“ALTER TABLE tablename ADD PRIMARY KEY (列的列表); ”。每個表只能有一個主鍵。

區(qū)別

1、普通索引是最基本的索引類型,沒有任何限制,值可以為空,僅加速查詢。普通索引是可以重復(fù)的,一個表中可以有多個普通索引。

2、主鍵索引是一種特殊的唯一索引,一個表只能有一個主鍵,不允許有空值;索引列的所有值都只能出現(xiàn)一次,即必須唯一。簡單來說:主鍵索引是加速查詢 + 列值唯一(不可以有NULL)+ 表中只有一個。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊5 分享