SQL执行中函数sum的问题

今天在查询一张数据量很大的表时,假设表为A,其中有本金字段和利息字段,现在要去将23号到26号这三天的本金和利息的总和取出来。
查询一:select sum(本金),sum(利息) from A where 时间在23号到26号之间; 执行时间100s左右
查询二: select sum(本金),sum(利息) from
(select 本金,利息 form A where 时间在23号到26号之间 );
这样只要10S左右。
个人理解:按照SQL的执行顺序,不应该会差别这么大。
求大神解释一下!

应该是查询二缩小主查询的范围,查询一需要去全表扫描

按照理解来说,查询一,先找表中所有数据的本金和利息,,在找where之后的,查询二为找条件小一点的表,也就是()里的。范围小了很多,当然很快。更何况在select中使用了sum函数,应该尽量减少from表的数据,这样查的更快。

sql语句的执行顺序是先执行from后边的语句,第一种方法是全表搜索,再执行sum函数,第二种方法是先执行括号内的sql语句,然后数据库内部创建了一个临时表,最后执行的sum函数,至于执行效率,建议楼主去看一下有关sql优化的书籍,上边讲的比较详细。