mysql+br_mysql有哪几种索引
從數(shù)據(jù)結(jié)構(gòu)角度
1、B+樹索引(O(log(n))):關(guān)于B+樹索引,可以參考?MySQL索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理
2、hash索引:
a 僅僅能滿足"=","IN"和"<=>"查詢,不能使用范圍查詢
b 其檢索效率非常高,索引的檢索可以一次定位,不像B-Tree 索引需要從根節(jié)點到枝節(jié)點,最后才能訪問到頁節(jié)點這樣多次的IO訪問,所以 Hash 索引的查詢效率要遠高于 B-Tree 索引
c 只有Memory存儲引擎顯示支持hash索引
3、FULLTEXT索引(現(xiàn)在MyISAM和InnoDB引擎都支持了)
4、R-Tree索引(用于對GIS數(shù)據(jù)類型創(chuàng)建SPATIAL索引)
從物理存儲角度
1、聚集索引(clustered index)
2、非聚集索引(non-clustered index)
從邏輯角度
1、主鍵索引:主鍵索引是一種特殊的唯一索引,不允許有空值
2、普通索引或者單列索引
3、多列索引(復(fù)合索引):復(fù)合索引指多個字段上創(chuàng)建的索引,只有在查詢條件中使用了創(chuàng)建索引時的第一個字段,索引才會被使用。使用復(fù)合索引時遵循最左前綴集合
4、唯一索引或者非唯一索引
5、空間索引:空間索引是對空間數(shù)據(jù)類型的字段建立的索引,MYSQL中的空間數(shù)據(jù)類型有4種,分別是GEOMETRY、POINT、LINESTRING、POLYGON。MYSQL使用SPATIAL關(guān)鍵字進行擴展,使得能夠用于創(chuàng)建正規(guī)索引類型的語法創(chuàng)建空間索引。創(chuàng)建空間索引的列,必須將其聲明為NOT
NULL,空間索引只能在存儲引擎為MYISAM的表中創(chuàng)建
CREATE TABLE table_name[col_name data type]
[unique|fulltext|spatial][index|key][index_name](col_name[length])[asc|desc]
1、unique|fulltext|spatial為可選參數(shù),分別表示唯一索引、全文索引和空間索引;
2、index和key為同義詞,兩者作用相同,用來指定創(chuàng)建索引
3、col_name為需要創(chuàng)建索引的字段列,該列必須從數(shù)據(jù)表中該定義的多個列中選擇;
4、index_name指定索引的名稱,為可選參數(shù),如果不指定,MYSQL默認(rèn)col_name為索引值;
5、length為可選參數(shù),表示索引的長度,只有字符串類型的字段才能指定索引長度;
6、asc或desc指定升序或降序的索引值存儲
總結(jié)
以上是生活随笔為你收集整理的mysql+br_mysql有哪几种索引的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 获取进程_java获取指定进程
- 下一篇: 新手学java_新手如何学习Java