mysql的索引有哪些?

2021-10-09 15:23:27 字數 1808 閱讀 2085

廢話不多說直接介紹

普通索引

index ---- 普通索引,資料可以重複,沒有任何限制。

唯一索引

unique ---- 唯一索引,要求索引列的值必須唯一,但允許有空值;如果是組合索引,那麼列值的組合必須唯一。

主鍵索引

primary key ---- 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表的同時建立主鍵索引。

組合索引

組合索引 ---- 在多個欄位上建立的索引,只有在查詢條件中使用了建立索引時的第乙個字段,索引才會被使用。

全文索引

fulltext ---- 全文索引,是對於大表的文字域:char,varchar,text列才能建立全文索引,主要用於查詢文字中的關鍵字,並不是直接與索引中的值進行比較。fulltext更像是乙個搜尋引擎,配合match against操作使用,而不是一般的where語句加like。

注:全文索引目前只有myisam儲存引擎支援全文索引,innodb引擎5.6以下版本還不支援全文索引

所有儲存引擎對每個表至少支援16個索引,總索引長度至少為256位元組,索引有兩種儲存型別,包括b型樹索引和雜湊索引。

索引可以提高查詢的速度,但是建立和維護索引需要耗費時間,同時也會影響插入的速度,如果需要插入大量的資料時,最好是先刪除索引,插入資料後再建立索引。

索引生效條件

假設index(a,b,c)

• 最左字首匹配:模糊查詢時,使用%匹配時:』a%『會使用索引,』%a『不會使用索引

• 條件中有or,索引不會生效

• a and c,a生效,c不生效

• b and c,都不生效

• a and b > 5 and c,a和b生效,c不生效。

建立索引

#主鍵索引 primary key ---- 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表的同時建立主鍵索引。

create table t_dept(

no int not null primary key,

name varchar(20) null,

*** varchar(2) null,

info varchar(20) null,

index index_no(no)

)#唯一索引unique +主鍵索引 primary :name 為唯一索引值不能有相同

create table t_dept2(

no int not null primary key,

name varchar(20) null,

*** varchar(2) null,

info varchar(20) null,

unique index index_no(name)

)#建立組合索引,將表中多個字段加入組合索引

create table t_dept3(

no int not null primary key,

name varchar(20) null,

*** varchar(2) null,

info varchar(20) null,

key index_no_name(no,name)

)#建立全文索引

create table t_dept3(

no int not null primary key,

name varchar(20) null,

*** varchar(2) null,

info varchar(20) null,

fulltext index index_no(no)

)

mysql 索引有哪些 mysql索引有哪些型別

mysql目前主要有的索引型別為 普通索引 唯一索引 主鍵索引 組合索引 全文索引。下面本篇文章就來給大家介紹一下這些mysql索引,希望對你們有所幫助。通過給字段新增索引可以提高資料的讀取速度,提高專案的併發能力和抗壓能力。索引優化時mysql中的一種優化方式。索引的作用相當於圖書的目錄,可以根據...

mysql有哪些索引 mysql索引有哪些

mysql索引有 1 主鍵索引,主鍵索引是一種特殊的唯一索引,不允許有空值 2 普通索引或者單列索引 3 多列索引 4 唯一索引或者非唯一索引 5 空間索引。mysql索引有哪些?1 主鍵索引 主鍵索引是一種特殊的唯一索引,不允許有空值 2 普通索引或者單列索引 3 多列索引 復合索引 復合索引指多...

mysql有哪些索引 mysql 有哪些索引

從資料結構角度 2 hash索引 a 僅僅能滿足 in 和 查詢,不能使用範圍查詢b 其檢索效率非常高,索引的檢索可以一次定位,不像b tree 索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的io訪問,所以 hash 索引的查詢效率要遠高於 b tree 索引c 只有memory儲存引擎顯...