84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
情况是这样,表record 大概300多W,表record_exten大概58W,图片是两条执行计划,可以看到order by的表不同,导致的查询计划的rows相差很大~ 请问是什么原因~~~
业精于勤,荒于嬉;行成于思,毁于随。
由于order by 不同的字段,导致两个查询中表record_exten所用的索引不同。显然索引PRIMARY 比DeptID要更加优化。
order by 使用索引的情况
1)默认情况是按顺序先取rownum,再order by 2)如果order by 满足使用索引的情况,则先order by,再取rownum
order by 使用索引是有条件的:
1)ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序. 2)ORDER BY中所有的列必须定义为非空. 3)另外,如果ORDER BY中的列在where 条件中出现,也会使用索引
详细查看:http://happymen001.iteye.com/blog/674764
由于order by 不同的字段,导致两个查询中表record_exten所用的索引不同。显然索引PRIMARY 比DeptID要更加优化。
order by 使用索引的情况
1)默认情况是按顺序先取rownum,再order by
2)如果order by 满足使用索引的情况,则先order by,再取rownum
order by 使用索引是有条件的:
1)ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.
2)ORDER BY中所有的列必须定义为非空.
3)另外,如果ORDER BY中的列在where 条件中出现,也会使用索引
详细查看:http://happymen001.iteye.com/blog/674764