一些总是在我脑海中,但我从未怀疑过的事情:当我构建查询时,我总是使用所有可能的前缀(例如,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 ;我不知道为什么,但我一直在想,如果使用前缀,这将提高查询的性能。
这是真的,还是我多年来一直怀有的迷思?
发布于 2013-11-25 04:23:50
你应该自己测试一下。
您会发现答案是否定的(除了发送到数据库的查询大小)。table.column限定符通常用于在查询中使用多个表以防止多义性。
例如,如果要联接的两个表都包含一个名为userId的列,则应为该列设置别名:
SELECT a.`userId`
FROM `user` a
LEFT JOIN `email` b
ON b.`userId` = a.`userId`如果您只使用SELECT userId,您将收到this error。
https://stackoverflow.com/questions/20179371
复制相似问题