JOIN - 在列名前添加表名是一个好习惯吗?

时间:2012-05-30 07:27:22

标签: mysql performance

在oracle书中,我读到当我们通过连接2个或更多个表来执行SELECT时,如果在列名称之前使用tablename,则SELECT工作得更快。
例如:
SELECT table1.name, table1.dob....代替SELECT name, dob....

在MySQL中它是一样的吗?

编辑

我知道当有相同的字段名称时,这是一个很好的做法。即使没有相同的字段名称,我的想法是关于性能观点

3 个答案:

答案 0 :(得分:1)

我不了解性能,但这是一个很好的做法,特别是在加入桌子时。连接的表可以具有相同的字段名称,然后查询将失败。如果表名太长,也可以使用别名:

SELECT t1.name, t2.dob FROM table1 t1 JOIN table t2 ON ...

答案 1 :(得分:1)

效率的角度来看,Oracle和MySQL SQL编译为内部表示,然后再执行它,所以我认为不一定存在显着差异。执行时间,因为如果没有指定表,它们将从字段名称中决定表。时间差将在编译时,它们推导出每个字段的表格。

事实上,我个人怀疑如果指定了表名,Oracle的执行速度会更快!

答案 2 :(得分:0)

当字段名称相同时,这不是一个好习惯,这是一直很好的做法。这不是关于效率,而是关于你的查询没有破坏,当其他人将字段添加到其中一个具有重叠名称的连接表时,所以你的东西在六个月的时间内工作,而不仅仅是今天。