| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1681 人关注过本帖
标题:请问,同样的查询不同的写法,是否会影响速度?谢谢!
只看楼主 加入收藏
mansohu
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2013-3-20
结帖率:20.69%
收藏
 问题点数: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
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册: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
快速回复:请问,同样的查询不同的写法,是否会影响速度?谢谢!
数据加载中...
 
   



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

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