select * from (select * from X a inner join Y b on b.MyId = a.Id)t where Id = 1
select * from X a inner join Y b on b.MyId = a.Id where a.Id = 1
以上第一条语句是不是比第二个慢?
会不会跟DB的优化有关,比如SQL Server会不会把第一句优化为第二句?
可以把两句代码都放到查询窗口,然后右击空白处-》显示估计的执行计划,一下子就告诉你两条语句占用的查询百分比,占用少的胜。
两条其实速度差不多,主要拖时间的是 select * , 改成你要的字段就快很多了
和你的表的大小有关,先大表后小表
select *比较耗,然后看执行计划,你就知道哪里慢了