这可能是一个奇怪的问题,但不知道如何研究它。执行以下查询时:
SELECT Foo.col1, Foo.col2, Foo.col3
FROM Foo
INNER JOIN Bar ON Foo.ID = Bar.BID
我倾向于使用 TableName.Column
而不仅仅是 col1, col2, col3
有什么性能差异吗?为每一列指定表名是否更快?
我的猜测是,是的,它会更快,因为查找列名并区分它需要一些时间。
如果有人知道我可以阅读的链接,我将不胜感激。我什至不知道如何更好地命名这个问题,因为不确定如何搜索它。
首先:这应该无关紧要。查找列的时间只占典型查询总处理时间的一小部分,因此这可能不是寻找额外性能的错误地点。
其次:Tablename.Colname
仅比 Colname
快,因为它消除了搜索引用表(和类表)的需要像 View 和子查询这样的结构)用于适合的列。同样:差异在于统计噪音。
第三:使用Tablename.Colname
Đúng一个好主意,但还有其他原因:如果您仅使用Colname
,并且其中之一查询中的表获得一个具有相同名称的新列,您最终会遇到众所周知的“列名不明确”错误。这种专栏的典型候选人通常是“评论”、“上次更改”和 friend 。如果您限定您的 col 引用,这个可维护性问题就会消失 - 您的查询将一如既往地工作,忽略新字段。
Tôi là một lập trình viên xuất sắc, rất giỏi!