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