1、b+樹索引(o(log(n))):關於b+樹索引,可以參考
mysql索引背後的資料結構及演算法原理
2、hash索引:
a 僅僅能滿足"=","in"和"<=>"查詢,不能使用範圍查詢
b 其檢索效率非常高,索引的檢索可以一次定位,不像b-tree 索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的io訪問,所以hash 索引的查詢效率要遠高於 b-tree 索引
c 只有memory儲存引擎顯示支援hash索引
3、fulltext索引(現在myisam和innodb引擎都支援了)
4、r-tree索引(用於對gis資料型別建立spatial索引)
1、聚集索引(clustered index)
2、非聚集索引(non-clustered index)
1、主鍵索引:主鍵索引是一種特殊的唯一索引,不允許有空值
2、普通索引或者單列索引
3、多列索引(復合索引):復合索引指多個欄位上建立的索引,只有在查詢條件中使用了建立索引時的第乙個字段,索引才會被使用。使用復合索引時遵循最左字首集合
4、唯一索引或者非唯一索引
5、空間索引:空間索引是對空間資料型別的字段建立的索引,
mysql
中的空間資料型別有4種,分別是geometry、point、linestring、polygon。mysql使用spatial關鍵字進行擴充套件,使得能夠用於建立正規索引型別的語法建立空間索引。建立空間索引的列,必須將其宣告為not null,空間索引只能在儲存引擎為myisam的表中建立
create table table_name[col_name data type]
[unique|fulltext|spatial][index|key][index_name](col_name[length])[asc|desc]
1、unique|fulltext|spatial為可選引數,分別表示唯一索引、全文索引和空間索引;
2、index和key為同義詞,兩者作用相同,用來指定建立索引
3、col_name為需要建立索引的字段列,該列必須從資料表中該定義的多個列中選擇;
4、index_name指定索引的名稱,為可選引數,如果不指定,mysql預設col_name為索引值;
5、length為可選引數,表示索引的長度,只有字串型別的字段才能指定索引長度;
6、asc或desc指定公升序或降序的索引值儲存
mysql 索引簡介
索引 是一種特殊的資料結構,可以用來快速查詢資料庫表中的特定記錄.是提高資料庫效能的重要方式.包括普通索引,唯一性索引,全文索引,單列索引,多列索引和空間索引.簡介 由資料庫表中的一列或多列組合而成,起作用是提高對錶中資料的查詢速度.設計原則 1.選擇唯一性索引 唯一性索引的值是唯一的,可以快速通過...
mysql索引簡介
參考資料 索引釋義 索引的分類 索引建立和刪除 索引的情景化應用 索引 index 是幫助mysql高效獲取資料的資料結構。提取句子主幹,就可以得到索引的本質 索引是資料結構。為什麼是索引,而不是直接的資料庫資料本身?查詢演算法只能應用於特定的資料結構,例如二分查詢適用於有序的資料,二叉樹查詢只能應...
mysql 索引簡介
索引 其實資料庫中的資料是按頁存放的 其實索引也是按頁存放的 所以本質上索引也佔硬碟空間 以最小的消耗,換取最大的利益 索引是一種有效組合資料的方式!為快速查詢到指定記錄做鋪墊 目的就是快速或者某個記錄!提高了資料庫的檢索速度!作用 大大提高資料庫的檢索速度 改善資料庫效能 mysql索引儲存型別分...