SELECT *会比40列上市快吗?

时间:2011-07-24 23:38:15

标签: php mysql query-optimization

  

可能重复:
  Which is faster/best? SELECT * or SELECT column1, colum2, column3, etc.

我有45个列的表,但是我需要选择40个列。

不是SELECT *比列出每一列更快,而是那些我不需要的那些?

在这种情况下,什么更快?

我只选择一行!

4 个答案:

答案 0 :(得分:3)

为数据库键入列更快,键入*的速度更快。选择哪个更重要: - )

答案 1 :(得分:1)

绝不应该使用

SELECT *,至少在生产应用程序中是这样。总是比较慢。仅在开发阶段使用SELECT *,而对您来说速度更快。顺便说一下,这是糟糕的代码实践。在这里阅读有关缺点:http://www.pdxperts.com/article-sqlselect.php

答案 2 :(得分:1)

来自http://forge.mysql.com/wiki/Top10SQLPerformanceTips

网络效果提示:

通过仅提取您需要的内容来最小化流量:

  • 请勿使用SELECT *

还要考虑DB引擎为那些您不需要的5个额外列分配结果集内存并通过线路发送它。即使没有性能损失也会产生内存开销,所以最好只选择你需要的内容。

答案 3 :(得分:0)

服务器仍然必须从磁盘读取页面,如果它不在内存中,然后从内存中读取缓存,最后读取到cpu,这些数据将在同一页面上,除非你有一些非常大的列,你不想要去取。

你可以稍微减少网络流量(40比45场),但我怀疑它会产生很大的影响。