假设我有一个名为tablex
的表:
ID,col1,col2,col3,col4,col5,col6.
考虑到处理中不需要col4,下列哪个代码更快?
代码1 - SELECT * FROM tablex
代码2 - SELECT ID,col1,col2,col3,col5,col6 FROM tablex
(注意代码2中缺少col4,因为它不需要,所有col都是80变量的文本,ID只是int,自动增量)
谢谢!
答案 0 :(得分:1)
由于col4
不需要获取并通过连接传递,因此显式列出的属性将略微(或不会略微)。
此外,如果您使用的是查询缓存,则缓存的结果集的大小会更小,因此可以缓存更多的结果集。
通常,您应该始终明确列出您的列(不仅是出于性能原因,还是为了它们)。
答案 1 :(得分:1)
这是你必须要做的基准测试。对于大多数小型查询,您很可能不会注意到任何差异。如果col4是包含千兆字节大小的文件的BLOB,那么它们很可能是特定的第一列(不是*
格式)会更快,因为每次都不需要获取“无用的”千兆字节。 / p>
答案 2 :(得分:-2)
代码2更快,但你应该自己运行一些测试来检查它