您好,匿名用户
随意问技术百科期待您的加入

对于关联表的查询使用join或where进行关联.具体的效率有没有很大区别?

0 投票

两张表.manytoone的关系.查询many,通过外键随便把one端得信息查出.我们可以通过left outer join on鞥等的join查询进行抓取.或者可以通过 where many端得外键id=one端得主键 效果是一样的.那他们具体的查询效率是否有区别?

用户头像 提问 2012年 12月1日 @ Nero 上等兵 (377 威望)
分享到:

1个回答

0 投票
 
最佳答案

看情况,如果你的devicespec1.id是主键或者索引什么的,那么join效率高。看这个就清楚了:

mysql> explain select test_tb1.id, test_tb2.value from test_tb1, test_tb2 where test_tb1.id = test_tb2.id;
+----+-------------+----------+-------+---------------+---------+---------+------+------+--------------------------------+
| id | select_type | table    | type  | possible_keys | key     | key_len | ref  | rows | Extra                          |
+----+-------------+----------+-------+---------------+---------+---------+------+------+--------------------------------+
|  1 | SIMPLE      | test_tb1 | index | PRIMARY       | PRIMARY | 4       | NULL |    3 | Using index                    |
|  1 | SIMPLE      | test_tb2 | ALL   | PRIMARY       | NULL    | NULL    | NULL |    4 | Using where; Using join buffer |
+----+-------------+----------+-------+---------------+---------+---------+------+------+--------------------------------+
2 rows in set (0.01 sec)

mysql> explain select test_tb1.id, test_tb2.value from test_tb1 left join test_tb2 on test_tb1.id = test_tb2.id;
+----+-------------+----------+--------+---------------+---------+---------+------------------+------+-------------+
| id | select_type | table    | type   | possible_keys | key     | key_len | ref              | rows | Extra       |
+----+-------------+----------+--------+---------------+---------+---------+------------------+------+-------------+
|  1 | SIMPLE      | test_tb1 | index  | NULL          | PRIMARY | 4       | NULL             |    3 | Using index |
|  1 | SIMPLE      | test_tb2 | eq_ref | PRIMARY       | PRIMARY | 4       | test.test_tb1.id |    1 |             |
+----+-------------+----------+--------+---------------+---------+---------+------------------+------+-------------+
2 rows in set (0.00 sec)

第一次查询要遍历两张表,第二次查询使用eq_ref不用遍历第二张表

用户头像 回复 2012年 12月1日 @ Poppy 上等兵 (395 威望)
选中 2012年 12月1日 @Nero
提一个问题:

相关问题

0 投票
1 回复 27 阅读
用户头像 提问 2012年 12月1日 @ Poseidon 上等兵 (188 威望)
0 投票
1 回复 414 阅读
0 投票
1 回复 34 阅读
+1 投票
1 回复 122 阅读
用户头像 提问 2012年 12月1日 @ Taurus 上等兵 (303 威望)
0 投票
1 回复 45 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...