Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用Table.Column是否可以提高性能?_Mysql_Sql - Fatal编程技术网

Mysql 使用Table.Column是否可以提高性能?

Mysql 使用Table.Column是否可以提高性能?,mysql,sql,Mysql,Sql,一些一直在我脑海中,但我从未质疑过的事情: 构建查询时,我总是使用所有可能的前缀(例如,Database.Table或Table.Column): 而不仅仅是: SELECT `ID` FROM `User` WHERE `Name` = "David" LIMIT 1 ; 我不知道为什么,但我一直认为如果使用前缀,这将提高查询的性能 这是真的还是我多年来一直在想的一个神话?你应该自己测试一下 您会发现答案是否定的(除了发送到数据库的查询大小)。table.column限定符用法通常在查询中使

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

而不仅仅是:

SELECT `ID` FROM `User` WHERE `Name` = "David" LIMIT 1 ;
我不知道为什么,但我一直认为如果使用前缀,这将提高查询的性能


这是真的还是我多年来一直在想的一个神话?

你应该自己测试一下

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

例如,如果要联接两个表,这两个表都包含一个名为
userId
的列,则应将该列别名为:

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

如果您只选择用户ID,您将收到。

请参阅感谢链接,但是,我看不出这与我的问题有什么关系。这看起来很相关:我同意:当存在歧义时,需要表限定符。但是,即使没有歧义,服务器也必须解析每列的表。此操作不应增加任何可测量的开销,因为架构信息几乎总是缓存的(取决于供应商)。除此之外,添加限定符肯定会提高代码的可读性。
SELECT a.`userId`
FROM `user` a
LEFT JOIN `email` b
    ON b.`userId` = a.`userId`