-2

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

SELECT * 
from table

对比

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

2 回答 2

3

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

  • 更清楚了
  • 您无法绝对知道永远不会有添加、删除或更改的列
  • 稍后更新查询以执行别名列之类的操作更容易
  • 如果您最终不得不JOIN向该查询添加 a,如果您保留SELECT *
于 2013-05-10T19:12:09.140 回答
0

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

于 2013-05-10T19:10:20.260 回答