84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
情况是这样,表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