join快,還是where快?
當2個表連接時,一般用join,但是用where也可以實現,
那個速度更快呢?還是一樣呢?
1.select * from table_a join table_b on a_id=b_id where ...
2.select * from table_a,table_b where a_id=b_id and ...
我測試了一下,table_a大概400萬條記錄,table_a大概300萬條記錄,但是好像速度几乎一樣。
請大家討論!
问题点数:100、回复次数:8Top
1 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-08-02 16:06:08 得分 20
两个查询是同一个查询语句在两个不同标准下的表达方式;在SQL Server 2000中,两条语句的执行计划是等同的。Top
2 楼ghostzxp(幽灵)回复于 2005-08-02 16:39:13 得分 10
第一种写法是推荐的写法。
通过适当的写法,可以通过 连接 来实现 where 后的部分条件。对于这样的语句可以建成带索引的视图,提高查询效率
Top
3 楼coolingpipe(冷箫轻笛)回复于 2005-08-02 16:57:36 得分 10
速度应该是一样的
不过要尽量使用joinTop
4 楼sxycgxj(云中客)回复于 2005-08-02 17:37:04 得分 10
速度应该是一样的
但第一种的写法可能更丰富一些Top
5 楼Stone444(冷雨夜)回复于 2005-08-02 19:04:22 得分 10
以前有看過一個這兩種寫法比較的文檔,
執行效率是一樣的,
SQL 編譯後生成的執行計劃是一樣的Top
6 楼MorningTea(一勺抹茶)回复于 2005-08-02 19:39:40 得分 10
两者区别:join on 是SQL92的新标准,用与关联两个表。
where 对结果集的记录进行筛选,也可以用与两个表的关联。两者最终都是笛卡儿乘积,他们在速度上有些微差别,但在实际作用上基本没有区别,除非在有外连接出现的时候。Top
7 楼wangdehao(找找找(现在很幸福))回复于 2005-08-02 20:41:50 得分 10
速度是一样,sql优化后的最终处理方式是一样的,推荐第一种Top
8 楼rivery(river)回复于 2005-08-02 20:51:22 得分 20
为什么没有人去试试,那个例子来说明一下特定情况下的比较。
两张表各50万记录。
然后看执行计划与效率。Top
相关问题
- inner join 的'ON'是在WHERE执行前还是执行后呢
- INNER JOIN 和 where 的区别????/
- 简单的问题:几个连接的区别。FROM/WHERE、 JOIN、 CROSS JOIN、 NATURAL JOIN
- Select a.* From a Left Join b On a.bid=b.id Where b.id=null
- 在查询的时候要关联好几张表,不只两张,是用from a,b,c where ....,还是用left join
- SQL语句里Where 和 inner join 有什么区别?
- 用join连接表如何使用where条件???
- 谁能告之inner join和where的区别?
- left join 的On 与查询条件 where 的疑难杂症
- inner join和视图查询哪个快?




