索引的扫描方式

1、INDEX RANGE SCAN扫描方式

select * from t where object_id=8;   

这是一种针对索引高度较低特性实现的扫描方式,在返回记录比较少的时候相当高效。

2、INDEX FULL SCAN (MIN/MAX)扫描方式

select max(object_id) from t;

这是针对最大最小取值的扫描方式

3、INDEX FULL SCAN扫描方式

select * from t  order by object_id;

索引全扫描,一次只读取一个块

4、INDEX FAST FULL SCAN扫描方式

select count(*) from t;

索引全扫描,一次读取多个块;


一次读取多个块不容易保证有序,一次读取一个块可以保证有序,因此在有排序的场合,INDEX FULL SCAN可以让排序消除,INDEX FAST FULL SCAN虽然减少了逻辑读,但是排序的动作无法排除。count,sum之类的统计无需排序,一般都走INDEX FAST FULL SCAN,而涉及排序语句,就要权衡利弊了,也许INDEX FAST FULL SCAN更快,也可能

INDEX FULL SCAN更快,需要优化器根据成本进行选择了。

注(object_id为索引字段)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章