Che*_*eso 9 sql syntax performance
出于好奇,我想知道对于sql 使用[ =
]与[ in
]对[ like
]对[ matches
](仅为1值)语法是否存在速度/效率差异.
select field from table where field = value;
Run Code Online (Sandbox Code Playgroud)
与
select field from table where field in (value);
Run Code Online (Sandbox Code Playgroud)
与
select field from table where field like value;
Run Code Online (Sandbox Code Playgroud)
与
select field from table where field matches value;
Run Code Online (Sandbox Code Playgroud)
我将添加到也存在和子查询.
但性能取决于给定SQL引擎的优化器.
在oracle中,IN和EXISTS之间存在很多差异,但不一定在SQL Server中.
您必须考虑的另一件事是您使用的列的选择性.有些案例表明IN更好.
但是,你要记住,IN是不可优化搜索(非搜索参数能),所以它不会使用索引来解决查询时,LIKE和=是优化搜索,并支持索引
最好的 ?你应该花一些时间在你的环境中测试它
通常,当需要比较多个值时,使用“in”语句。引擎会遍历列表中的每个值以查看是否有匹配的值。如果只有一个元素,那么时间与“=”语句没有区别。
“like”表达式的不同之处在于它使用模式匹配来查找正确的值,因此需要在后端进行更多的工作。对于单个值,不会有显着的时间差异,因为只有一个可能的匹配,并且比较将与“=”和“in”发生的比较类型相同。
基本上,不,或者至少差异很小,你不会注意到。
归档时间: |
|
查看次数: |
23402 次 |
最近记录: |