在SELECT查询中使用*

时间:2013-05-10 19:06:56

标签: mysql sql select

我读过某个从不使用*返回表中所有列的地方 - 它很懒惰。在这种情况下,如果我需要所有5列并且之后表格不会有任何更改,那么是否有任何性能差异:

SELECT * 
from table

VS。

SELECT id,col1,col2,col3,col4 
from table

2 个答案:

答案 0 :(得分:3)

我认为没有明显的性能差异,但在生产代码中我会坚持使用明确的列列表:

  • 更清楚
  • 您无法绝对知道永远不会有添加,删除或更改的列
  • 稍后更新查询以执行类似别名列
  • 的操作会更容易
  • 如果您最终必须向该查询添加JOIN,那么如果您保留SELECT *
  • ,事情会变得有趣

答案 1 :(得分:0)

应该没有任何区别。这只是不好的做法 - 如果您稍后修改table,如果他们使用*,可能会破坏一些更复杂的查询(例如跨多个表的查询)。