Vic*_*tor 12 mysql sql performance inner-join
是否存在性能差异(在mysql中)
Select * from Table1 T1
Inner Join Table2 T2 On T1.ID = T2.ID
Run Code Online (Sandbox Code Playgroud)
和
Select * from Table1 T1, Table2 T2
Where T1.ID = T2.ID
Run Code Online (Sandbox Code Playgroud)
?
Pat*_*ick 13
从问题44917中接受的答案中提取:
性能方面,它们完全相同(至少在SQL Server中),但要注意它们正在弃用隐式外连接语法.
在MySql中,结果是一样的.
我个人坚持明确加入表格......这是"社会可接受"的做法.
Ewa*_*ing 13
他们是一样的.通过运行EXPLAIN命令可以看到:
mysql> explain Select * from Table1 T1
-> Inner Join Table2 T2 On T1.ID = T2.ID;
+----+-------------+-------+-------+---------------+---------+---------+------+------+---------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+---------+---------+------+------+---------------------------------------------+
| 1 | SIMPLE | T1 | index | PRIMARY | PRIMARY | 4 | NULL | 4 | Using index |
| 1 | SIMPLE | T2 | index | PRIMARY | PRIMARY | 4 | NULL | 4 | Using where; Using index; Using join buffer |
+----+-------------+-------+-------+---------------+---------+---------+------+------+---------------------------------------------+
2 rows in set (0.00 sec)
mysql> explain Select * from Table1 T1, Table2 T2
-> Where T1.ID = T2.ID;
+----+-------------+-------+-------+---------------+---------+---------+------+------+---------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+---------+---------+------+------+---------------------------------------------+
| 1 | SIMPLE | T1 | index | PRIMARY | PRIMARY | 4 | NULL | 4 | Using index |
| 1 | SIMPLE | T2 | index | PRIMARY | PRIMARY | 4 | NULL | 4 | Using where; Using index; Using join buffer |
+----+-------------+-------+-------+---------------+---------+---------+------+------+---------------------------------------------+
2 rows in set (0.00 sec)