索引類型:
普通類型索引
primary key
foreign key
unique index
non-unique
專業索引:
--b-tree 平衡數索引,有別於二叉樹.二叉樹高度可能很高平衡樹不會很高通常三、4層.
b+tree b-tree是邏輯叫法,b+tree是技術實現.有一部分存儲在內存不夠時會放到磁盤上.(innodb、MyISAM、Memery等)
r-tree 空間索引(MyISAM)
full text全文索引.(MyISAM)
hash index(Memery) mysql
索引目的:
減小I/O,會提供查詢速度,會影響dml速度.
選擇性:返回行佔整個記錄的比例 算法
索引類型:前綴索引、複合索引、函數索引的變通(經過增長列和觸發器實現)、全文索引
複合索引:oracle有index skip算法能夠使不是引導列的索引被使用.mysql必須按照定義順序使用複合索引.
全文索引:主要是查詢單詞. ...where match(列) aginst('字符' in 模式).有3中模式boolean(支持運算符表達式)、天然語言、擴展天然語言.
select title from books where mathc(title) against('prince')
select title,author from books where match(title) against('green +Anne' in boolean mode);--in natural language mode/with query expansion
--查看執行計劃
explain select * from t where year(d) >1994\G
select_type:subquery(使用子查詢)、dependent subquery(關聯子查詢)、derived(子查詢做爲from,內嵌視圖)、
simple(簡單查詢)
union(使用了union) sql
查看某個表的索引:
show index from [tb_name]\G oracle