我们正在使用SQL Server 2005,但是这个问题可能适用于任何RDBMS。
从视图中选择所有列时,以下哪一项更有效?
Select * from view
或者
Select col1, col2, ..., colN from view
永远不要使用“选择*” !!!!
这是查询设计的基本规则!
这有多种原因。其中之一是,如果您的表上只有三个字段,并且您使用了调用查询的代码中的所有三个字段,则很有可能会随着应用程序的增长而向该表中添加更多字段,并且您的select *查询仅用于返回调用代码的这3个字段,那么您从数据库中提取的数据量远远超出了您的需要。
另一个原因是性能。在查询设计中,不要像此口头禅那样考虑可重用性:
尽您所能,但尽您所能。