使用Table.Column是否提高了性能?

时间:2013-11-24 18:47:13

标签: mysql sql

一直在我心中的东西,但我从未质疑过: 当我构建查询时,我总是使用所有可能的前缀(例如,Database.Table或Table.Column):

SELECT `User`.`ID` FROM `Shop`.`User` WHERE `User`.`Name` = "David" LIMIT 1 ;

而不只是:

SELECT `ID` FROM `User` WHERE `Name` = "David" LIMIT 1 ;

我不知道为什么,但我始终认为如果你使用前缀,这将提高查询的性能。

这是真的,还是我多年来一直认为的神话?

1 个答案:

答案 0 :(得分:0)

你应该自己测试一下。

你会发现答案是否定的(除了发送到数据库的查询大小)。 table.column限定符的使用通常在查询中使用多个表时使用,以防止出现歧义。

例如,如果您要连接两个包含名为userId的列的表,则可以为该列添加别名:

SELECT a.`userId`
FROM `user` a
LEFT JOIN `email` b
    ON b.`userId` = a.`userId`

如果您只是SELECT userId,则会收到this error