mysql选择行优化星或名称

时间:2010-12-24 12:24:22

标签: php mysql

假设我有一个名为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,自动增量)

谢谢!

3 个答案:

答案 0 :(得分:1)

由于col4不需要获取并通过连接传递,因此显式列出的属性将略微(或不会略微)。

此外,如果您使用的是查询缓存,则缓存的结果集的大小会更小,因此可以缓存更多的结果集。

通常,您应该始终明确列出您的列(不仅是出于性能原因,还是为了它们)。

答案 1 :(得分:1)

这是你必须要做的基准测试。对于大多数小型查询,您很可能不会注意到任何差异。如果col4是包含千兆字节大小的文件的BLOB,那么它们很可能是特定的第一列(不是*格式)会更快,因为每次都不需要获取“无用的”千兆字节。 / p>

答案 2 :(得分:-2)

代码2更快,但你应该自己运行一些测试来检查它