mysql索引種類 索引結構 索引優化

2021-08-01 21:06:54 字數 1600 閱讀 8106

索引的資料結構和儲存:myisam和innodb都使用的是b+tree資料結構。

myisam的索引檔案僅僅儲存資料記錄的位址,和資料檔案分開存放。   innodb是索引和資料儲存在一起。

檢視乙個表的索引:show index from employee.titles;

通常所說的索引型別:

1.index(普通索引)如果是varchar char的話可以指定小於length的長度進行索引,叫做字首索引,字首索引的好處是加速索引的查詢速度,減少索引檔案大小,提高更新資料的速度。

建立索引

create

index

indexname 

onmytable(username(length)); 

更改索引

alter

mytable 

add

index

[indexname] 

on

(username(length))

、刪除索引

drop

index

[indexname] 

onmytable; 

2.unique(唯一索引)索引值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。

建立索引

create

unique

index

indexname 

onmytable(username(length)) 

更改索引

alter

mytable 

addunique

[indexname] 

on(username(length)) 

刪除索引

3.主鍵索引(primary key)一般在建立表的時候一起建立

4.組合索引組合索引的查詢效率遠高於單個索引 ,其次在建立索引的時候如果是 a,b,c則a、ab都會用到索引,但是其他的用不到,這是最左字首的結果。

alter

table

mytable 

addindex

name_city_age (

name

(10),city,age); 

5.全文索引 innodb在mysql5.6版本以後開始支援,myisam支援,一般在char、varchar或text列上建立。

什麼時候會用到索引:

mysql只對<,<=,=,>,>=,between,in,以及某些時候的like才會使用索引。

like:萬用字元%在前面的時候不會使用索引  

select

* from

mytable wheret 

name

like

'%admin'

where 後面使用函式和表示式的時候不會經過索引

mysql索引種類(索引種類和建立索引)

一 mysql索引種類 1 加速查詢 查詢普通欄位和查詢有索引字段,哪個方式查詢速度快 根據索引來查字段速度更快 2 建立索引 為userinfo表email欄位建立索引 create index ix name on userinfo 建立欄位email索引檔案,起別名ix name為某個字段建立...

mysql 索引種類

從資料結構角度 1 b 樹索引 o log n 關於b 樹索引,可以參考 mysql索引背後的資料結構及演算法原理 2 hash索引 a 僅僅能滿足 in 和 查詢,不能使用範圍查詢 b 其檢索效率非常高,索引的檢索可以一次定位,不像b tree 索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多...

mysql常用的索引種類

mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度 mysql目前主要有以下幾種索引型別 fulltext,hash,btree,rtree。1.fulltext 即為全文索引,目前只有myisam引擎支援。其可以在create table alter ta...