出于好奇,我想知道在使用[=]与[in]与[like]与[matches](仅为1值)语法的
sql中是否存在任何速度/效率差异.
select field from table where field = value;
与
select field from table where field in (value);
与
select field from table where field like value;
与
select field from table where field matches value;
我将
添加到也存在和子
查询.
但性能取决于给定sql引擎的优化器.
在oracle中,IN和EXISTS之间存在很多差异,但不一定在sql Server中.
您必须考虑的另一件事是您使用的列的选择性.有些案例表明IN更好.
但是你必须记住IN是非sargable(非搜索参数能够)所以它不会使用索引来解析查询,LIKE和=是可搜索的并且支持索引
最好的 ?你应该花一些时间在你的环境中测试它