可能重复:
Which is faster/best? SELECT * or SELECT column1, colum2, column3, etc.
我有45个列的表,但是我需要选择40个列。
不是SELECT *
比列出每一列更快,而是那些我不需要的那些?
在这种情况下,什么更快?
我只选择一行!
答案 0 :(得分:3)
为数据库键入列更快,键入*
的速度更快。选择哪个更重要: - )
答案 1 :(得分:1)
SELECT *
,至少在生产应用程序中是这样。总是比较慢。仅在开发阶段使用SELECT *
,而对您来说速度更快。顺便说一下,这是糟糕的代码实践。在这里阅读有关缺点:http://www.pdxperts.com/article-sqlselect.php
答案 2 :(得分:1)
来自http://forge.mysql.com/wiki/Top10SQLPerformanceTips
网络效果提示:
通过仅提取您需要的内容来最小化流量:
还要考虑DB引擎为那些您不需要的5个额外列分配结果集内存并通过线路发送它。即使没有性能损失也会产生内存开销,所以最好只选择你需要的内容。
答案 3 :(得分:0)
服务器仍然必须从磁盘读取页面,如果它不在内存中,然后从内存中读取缓存,最后读取到cpu,这些数据将在同一页面上,除非你有一些非常大的列,你不想要去取。
你可以稍微减少网络流量(40比45场),但我怀疑它会产生很大的影响。