由於索引塊中存儲了索引列的值,所以在檢索項爲索引列時,可以避免回表;
或者通過建組合索引防止回表;
即使一定要回表,也存在性能差異。這裏涉及到聚合因子。
當表數據的插入順序與索引的插入順序相似度很高時,我們稱之爲聚合因子比較低;差異明顯的,我們稱之爲聚合因子比較高。
聚合因子低的查詢效率高。
查看聚合因子高低的語句:
CLUSTERING_FACTOR 即爲聚合因子,官方解釋:表明有多少臨近的索引條目指到不同的數據塊;
select a.index_name,
b.num_rows,
b.blocks,
a.clustering_factor
from user_indexes a, user_tables b
where index_name in ('COLOCATED_PK', 'DISORGANIZED_PK' )
and a.table_name = b.table_name;
INDEX_NAME NUM_ROWS BLOCKS CLUSTERING_FACTOR
------------------------------ ---------- ---------- -----------------
COLOCATED_PK 100000 1252 1190
DISORGANIZED_PK 100000 1219 99899