MYSQL 索引的介紹及使用

2021-10-02 21:42:46 字數 4040 閱讀 6970

mysql官方對索引的定義為:索引(index)是幫助mysql高效獲取資料的資料結構。

提取句子主幹,就可以得到索引的本質,索引是資料結構。

對於索引,我們理解成目錄都可以,就像一本書的目錄,當我們需要查詢書中某個資料時,如果對書本不了解,我們直接找肯定會很費勁,但是如果我們先找目錄,查詢的速度就會提高,我們理解索引就可以這樣理解。

唯一索引(unique)

常規索引(key/index)

全文索引(fulltext)

顯示某張表所有的索引

show

index

from 表名;

增加乙個索引

-- 方式1:

create

table

`user`(

`id`

intcomment

'主鍵id'

,`name`

varchar(30

)comment

'使用者名稱'

,`***`

enum

('男'

,'女'

)comment

'性別'

,`phone`

varchar(15

)comment

'**號'

,`brief`

text

comment

'簡介'

,`birthday`

date

comment

'生日'

,primary

key(

`id`

)-- 建表時將id列新增為主鍵

-- primary key(列名)

)engine

=myisam charset

=utf8 collate

=utf8_general_ci;

-- 方式2:

alter

table 表名 add

primary

key(指定字段)

;

-- 方式1:

create

table

`user`(

`id`

intcomment

'主鍵id'

,`name`

varchar(30

)comment

'使用者名稱'

,`***`

enum

('男'

,'女'

)comment

'性別'

,`phone`

varchar(15

)comment

'**號'

,`brief`

text

comment

'簡介'

,`birthday`

date

comment

'生日'

,unique phone_key(

`phone`

)-- 建表時為phone列新增名為phone_key的唯一索引

-- unique 索引名(列名) 可以不指定索引名 不指定時預設為列名

)engine

=myisam charset

=utf8 collate

=utf8_general_ci;

-- 方式2:

alter

table 表名 add

unique

index 索引名(列名)

;--可省略索引名

-- 方式3:

create

unique

index 索引名 on 表名(列名)

;--不可省略索引名

-- 方式1:

create

table

`user`(

`id`

intcomment

'主鍵id'

,`name`

varchar(30

)comment

'使用者名稱'

,`***`

enum

('男'

,'女'

)comment

'性別'

,`phone`

varchar(15

)comment

'**號'

,`brief`

text

comment

'簡介'

,`birthday`

date

comment

'生日'

,key name_key(

`name`

)-- 建表時為name列新增名為name_key的普通索引

-- key 索引名(列名) 可以不指定索引名 不指定時預設為列名

)engine

=myisam charset

=utf8 collate

=utf8_general_ci;

-- 方式2:

alter

table 表名 add

index 索引名(列名)

;--可省略索引名

-- 方式3:

create

index 索引名 on 表名(列名)

;--不可省略索引名

-- 方式2:

create

table

`user`(

`id`

intcomment

'主鍵id'

,`name`

varchar(30

)comment

'使用者名稱'

,`***`

enum

('男'

,'女'

)comment

'性別'

,`phone`

varchar(15

)comment

'**號'

,`brief`

text

comment

'簡介'

,`birthday`

date

comment

'生日'

, fulltext brief_key(

`brief`

)-- 建表時為brief列新增名為brief_key的全文索引

-- fulltext 索引名(列名) 可以不指定索引名 不指定時預設為列名

)engine

=myisam charset

=utf8 collate

=utf8_general_ci;

--方式2:

alter

table 表名 add fulltext 索引名(列名)

;--可省略索引名

--方式3:

create fulltext index 索引名 on 表名(列名)

;--不可省略索引名

注意:全文索引的使用,要看當前資料引擎是否支援哦!

刪除索引

alter

table 表名 drop

primary

key;

alter

table 表名 drop

index 索引名;

alter

table 表名 drop

index 索引名;

alter

table 表名 drop

index 索引名;

索引雖好,但是也不能亂用和濫用,用的恰當對整個系統的執行有著很好的效果,用的不好,也會無意降低系統的效能,我們的開發更應該從實際角度出發去考慮任何問題。

Mysql索引介紹及常見索引的區別

mysql索引概念 說說mysql索引,看到乙個很少比如 索引就好比一本書的目錄,它會讓你更快的找到內容,顯然目錄 索引 並不是越多越好,假如這本書1000頁,有500也是目錄,它當然效率低,目錄是要佔紙張的,而索引是要佔磁碟空間的。mysql索引主要有兩種結構 b tree索引和hash索引.ha...

MySQL 索引介紹及索引的分類 索引原則

索引的使用 1.在建立表的時候給字段增加索引.2.建立表完畢後,增加索引.use school show index from student 顯示所有的索引資訊 增加乙個全文索引 索引名 列名 alter table student add fulltext index studentname s...

Mysql的索引的介紹與使用

索引設計的原則 場景 1 最適合索引的列是出現在where條件語句的列或者是連線子句指定的列,而不應該是select關鍵字後面的列 2 使用唯一索引,考慮應該是 索引的列的基數越大,索引的效果越好,如果索引建在性別列,就沒有意義了,因為無論搜尋哪個值,都會得到大約一半的行 3 使用短索引,如果對字串...