定義:索引(index)是幫助mysql高效獲取資料的資料結構(有序)。
優勢:公司一般用的是b+tree索引。類似書籍目錄,提高資料檢索效率,降低資料庫的io成本
通過索引列對資料進行排序,降低資料排序的成本,降低cpu的消耗。
劣勢:實際來說索引也是一張表,該錶儲存了主鍵和索引字段,所以索引列是要占用空間的。
2.雖然提高了查詢效率,會降低更新表的效率。
btree又叫多路平衡搜尋樹。b+tree是btree的變種。平常所說的索引就是b+樹結構組織的索引。其中聚集索引、復合索引、字首索引、唯一索引預設都是使用b+tree索引,統稱索引。
兩者區別:
mysql中的b+tree
對b+tree進行了優化,在原有的基礎上,增加了只想相鄰葉子節點的鍊錶指標,就形成了帶有順序指標的b+tree,提高區間訪問的效能。
單列索引:即乙個索引只包含單個列,乙個表可以有多個單列索引
復合索引:即乙個索引包含多個列
唯一索引:索引列的值必須唯一,允許有空值
主鍵索引:是一種特殊的索引,不允許有空值
檢視索引show index from table;建立索引
create index index_name on table(table_name);
刪除索引
drop index index_name on table;
Mysql索引的資料結構及索引優化
索引的本質 是幫助mysql高效獲取資料的排好序的資料結構。索引資料結構 1 二叉樹 儲存資料的時候是乙個鍊錶,如果要查詢0006的話要查詢6次,如果是全表掃瞄的話也得查詢6次。弊端 二叉樹的查詢效率很低。2 紅黑樹 儲存資料的時候會自旋,如果要查詢0006的話只需要查詢3次。如果是全表掃瞄或二叉樹...
mysql 資料結構 Mysql索引資料結構
mysql索引資料結構 當慢查詢時,看sql是否走索引。索引的本質 索引是幫助mysql高效獲取資料的排好序的資料結構。mysql若不建立索引,查詢某條資料時則會逐行掃瞄,每掃瞄一行資料就會做一次磁碟io。b tree 葉節點具有相同的深度,葉節點的指標為空。所有索引元素不重複。葉節點中的資料索引從...
mysql索引資料結構 mysql索引資料結構
什麼是索引?索引就是排好序的資料結構,可以幫助我們快速的查詢到資料 幾種資料結構 二叉樹 如果資料是單邊增長的情況 那麼出現的就是和鍊錶一樣的資料結構了,樹高度大 紅黑樹 在二叉樹的基礎上多了樹平衡,也叫二叉平衡樹,不像二叉樹那樣極端的情況會往乙個方向發展。同樣我們查詢6,在二叉樹中我們需要經過6個...