sql语句中的select执行效率和where条件的排序有关吗?
sql语句中的select执行效率和where条件的排序有关吗?把概率大的排在前面还是把精确的排在前面好。谢谢。oracle数据库。...
sql语句中的select执行效率和where条件的排序有关吗?把概率大的排在前面还是把精确的排在前面好。谢谢。oracle数据库。
展开
2013-08-07
展开全部
有关啊
举个例子吧
select * from table1 where a<1000 and b=1
select * from table1 where b=1 and a<1000
同样的全表扫描情况下,假设a<1000的有90%都符合,b=1的有10%符合,则第一条语句90%的还进行了b=1的比较,第二条语句10%的进行了a<1000的比较,当然是第二条语句的效率高啊
举个例子吧
select * from table1 where a<1000 and b=1
select * from table1 where b=1 and a<1000
同样的全表扫描情况下,假设a<1000的有90%都符合,b=1的有10%符合,则第一条语句90%的还进行了b=1的比较,第二条语句10%的进行了a<1000的比较,当然是第二条语句的效率高啊
展开全部
没有关系。
在MS SQL 2008 R2下测试,一个数据量大约是20万条记录的表中,Where各条件前后放置查询速度基本一样。
MS SQL内部是使用了很多查询优化算法的,并不是我们想象的,一条一条去比较,SQL的设计要是笨到那一步,就没法投入实际运用了。
在MS SQL 2008 R2下测试,一个数据量大约是20万条记录的表中,Where各条件前后放置查询速度基本一样。
MS SQL内部是使用了很多查询优化算法的,并不是我们想象的,一条一条去比较,SQL的设计要是笨到那一步,就没法投入实际运用了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-07
展开全部
碰巧我在看数据库,where条件有特定的大致顺序。顺序搞乱查询会错误。Oracle采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-07
展开全部
无关
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询