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 使用短索引,如果對字串...