索引的資料結構和儲存: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...