mysql 索引
1. 索引的概念
索引是建立在表上的,對資料庫表中的一列或多列的值進行排序的一種結構。
索引有2種儲存型別:b型樹索引 和 雜湊索引。innodb和myisam儲存引擎支援b型樹索引,memory儲存引擎支援雜湊索引。
優點:提高檢索資料的速度。對於有依賴關係的子表和父表之間的聯合,可提高查詢速度;使用分組和排序子句進行資料查詢,可顯著節省查詢時間。
缺點:建立和維護需要耗費時間,耗費的時間隨著資料量的增加而增加;索引需要占用物理空間;增加、修改和刪除索引時,需要動態的維護索引,會造成資料維護速度降低。
2.索引的分類
1)普通索引:
不加任何限制條件的索引。
2)唯一性索引:
unique引數設定唯一性索引。
3)全文索引:
使用fulltext引數設定為全文索引。(全文索引只能建立在char、varchar或text型別欄位上)
4)單列索引:
為表的單個字段建立索引。
5)多列索引:
為表的多個字段建立乙個索引。
6)空間索引:
使用spatial引數設定。
3. 索引的設計原則
1)選擇唯一性索引;
2)為經常需要排序、分組和聯合操作的字段建立索引;
3)為常作為查詢條件的字段建立索引;
4)限制索引的數目;
5)盡量使用資料量少的索引;
6)盡量使用字首索引;
7)刪除不再使用或很少使用的索引。
4. 建立索引
1)建立表的時候建立索引
createtable
表名 ( 屬性名 資料型別 約束條件,
屬性名 資料型別 約束條件,
...unique
| fulltext | spatial index
|key
別名 ( 屬性名1 (長度)
asc|
desc
) );
index和key表示指定欄位為索引,兩者作用相同選其一即可。
asc/desc表示公升序排列和降序排列。
2)為已經存在的表建立索引
createunique
| fulltext | spatial index
索引名
on 表名 ( 屬性名 (長度) asc
|desc );
3)用alter table語句建立索引
altertable 表名 add
unique
| fulltext | spatial index
索引名 ( 屬性名 (長度)
asc|
desc );
5. 刪除索引
dropindex 索引名 on 表名;
mysql基礎知識之索引
mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。索引其實和字典的目錄很相似,字典可以根據拼音和部首偏旁快速查詢到指定的字。對於mysql資料庫來說,索引是乙個排序的列表,在這個列表中儲存著索引的值和包含這個值的資料所在行的實體地址,在資料十分龐大的時候,...
索引基礎知識
sql server 2005 其他版本 0 共 1 對本文的評價是有幫助 評價此主題 索引是與表或檢視關聯的磁碟上結構,可以加快從表或檢視中檢索行的速度。索引包含由表或檢視中的一列或多列生成的鍵。這些鍵儲存在乙個結構 b 樹 中,使 sql server 可以快速有效地查詢與鍵值關聯的行。表或檢視...
索引基礎知識
1 快速取資料 2 保證資料記錄的唯一性 3 加快表的連線速度 4 在使用order by group by子句進行資料檢索時,利用索引可以減少排序和分組的時間。1 索引需要佔物理空間。2 當對表中的資料進行增加 刪除和修改的時候,索引也要動態的維護,降低了資料的維護速度。其實,索引的本質是乙個查詢...