由于索引块中存储了索引列的值,所以在检索项为索引列时,可以避免回表;
或者通过建组合索引防止回表;
即使一定要回表,也存在性能差异。这里涉及到聚合因子。
当表数据的插入顺序与索引的插入顺序相似度很高时,我们称之为聚合因子比较低;差异明显的,我们称之为聚合因子比较高。
聚合因子低的查询效率高。
查看聚合因子高低的语句:
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
原文链接:https://www.f2er.com/javaschema/285518.html