在一本oracle书中,我读到当我们通过连接两个或多个表来执行SELECT时,如果在SELECT名称工作得更快之前使用tablename。
如:
SELECT table1.name, table1.dob....
,而不是SELECT name, dob....
JOIN - 在列名之前添加表名是否是一种好的做法?
它是在MySQL以同样的方式?
编辑
我知道,这是一个很好的做法时,有相同的字段名。即使没有相同的字段名称,我在想的也是性能观点
在一本oracle书中,我读到当我们通过连接两个或多个表来执行SELECT时,如果在SELECT名称工作得更快之前使用tablename。
如:
SELECT table1.name, table1.dob....
,而不是SELECT name, dob....
JOIN - 在列名之前添加表名是否是一种好的做法?
它是在MySQL以同样的方式?
编辑
我知道,这是一个很好的做法时,有相同的字段名。即使没有相同的字段名称,我在想的也是性能观点
从效率的角度来看,甲骨文和MySQL 执行前编译的SQL到一个内部表示,所以不认为执行时间必须有显着差异,因为如果它们没有被指定,它们将从字段名称中决定表格。时差将在编译时间,在那里他们推导出每个字段的表格。
事实上,我个人怀疑,如果指定表名,Oracle执行速度会更快!
当有相同的字段名称时,这是一个很好的做法。我想的是关于性能的观点,即使没有相同的字段名称 – Anish
我已经编辑了答案。 –
当字段名称相同时,这是不好的做法,这是不错的做法。这不是关于效率,而是关于当其他人将字段添加到具有重叠名称的连接表中时,您的查询不会中断,所以您的工作在六个月的时间内运行,而不仅仅是在今天。
确定'explain'给出了相同的计划 – triclosan
@triclosan你能解释一下吗?我没有完全得到你 – Anish
运行'explain first_query'和'explain second_query'并比较结果 – triclosan