标题:请问,同样的查询不同的写法,是否会影响速度?谢谢!
只看楼主
mansohu
Rank: 1
等 级:新手上路
帖 子:190
专家分:0
注 册:2013-3-20
结帖率:21.05%
 问题点数:0 回复次数:1 
请问,同样的查询不同的写法,是否会影响速度?谢谢!
比如:FD3字段 是个bit字段(或分类字段,可以筛选掉大量条目的那种),请问如果表中条目很多时,以下3种写法,是否会影响查询速度?

  select * From TB1 where FD1=x and FD2=xx and FD3=1
  select * From TB1 where FD3=1 and FD1=x and FD2=xx
  select * From (select * From TB1 where FD3=1) a Where FD1=x and FD2=xx
2016-12-06 12:09
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
我在网上看过where的执行顺序,说是从后面往前面执行的。如下
select bh,xm,xb from 学生 where bh=@bh and xm=@xm and xb=@xb
他是先过滤xb=@xb,再过滤xm=@xm ,最后才bh=@bh
所以,要把过滤出来的记录数最少的放到最后。
也就是说,如果有1000条记录,
先只用 xb=@xb 过滤后,只有100条
先只用 xm=@xm 过滤后,只有200条
先只用 bh=@bh 过滤后,只有300条
那么,就要这样写
where bh=@bh and xm=@xm and xb=@xb

如果
先只用 xb=@xb 过滤后,只有500条
先只用 xm=@xm 过滤后,只有200条
先只用 bh=@bh 过滤后,只有300条
那么,就要这样写
where xb=@xb and bh=@bh and xm=@xm



[此贴子已经被作者于2016-12-7 11:36编辑过]

2016-12-07 09:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-472034-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.349303 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved