1

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

MySQL中的方式是否相同?

编辑

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

4

3 回答 3

1

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

SELECT t1.name, t2.dob FROM table1 t1 JOIN table t2 ON ...
于 2012-05-30T07:36:14.170 回答
1

效率的角度来看,Oracle和MySQL在执行之前将SQL编译为内部表示,因此我认为执行时间不会有很大差异,因为如果不指定,它们将根据字段名称来决定表. 时间差将在编译时,他们为每个字段推导出表。

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

于 2012-05-30T07:37:29.697 回答
0

当字段名称相同时,这不是一个好习惯,它始终是一个好习惯。这与效率无关,而是当其他人将字段添加到具有重叠名称的联接表之一时,您的查询不会中断,因此您的东西可以在六个月内工作,而不仅仅是今天。

于 2012-05-30T23:48:37.460 回答