欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

求解select 后的where 条件匹配顺序解决方法

更新时间: 2014-01-05 02:30:45 责任编辑: Author_N1

 

求解select 后的where 条件匹配顺序
select * from tb where a=? ,b=? ,c=? d in(1,2,3,4)的过程是怎样的?
在sql语句执行后,数据库查询是一条一条匹配where后面的条件的么?
比如 第一条 a匹配成功,b匹配成功,c匹配成功d匹配成功
然后匹配第二条,a匹配成功,b匹配不成功,继续匹配吓一跳
然后匹配第三条 a匹配不成功,继续匹配下一条
然后匹配第四条, a匹配成功,b匹配成功,c匹配成功d匹配不成功?
请问是这样吗?

如果是这样的话,在大数据量的表中是不是
类似select * from tb in (select * from tb where a =? and b in(select b from tb where b = ? ))
这种的效率比较高?

--参考方法--
sql的条件是从后向后解析
先判断d in(1,2,3,4),符合条件再判断c=? ,依次类推,所在要把效率高的条件放在最后,一为了缩小数据集的范围,二提高效率。
--参考方法--
探讨
sql的条件是从后向后解析
先判断d in(1,2,3,4),符合条件再判断c=? ,依次类推,所在要把效率高的条件放在最后,一为了缩小数据集的范围,二提高效率。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:30:45
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/10724/
本文WWW.DOC100.NET DOC100.NET版权所有。