我听说SELECT *在编写 SQL 命令时使用这种做法通常是不好的做法,因为它对SELECT您特别需要的列更有效。
SELECT *
SELECT
如果我需要SELECT表格中的每一列,我应该使用
SELECT * FROM TABLE
或者
SELECT column1, colum2, column3, etc. FROM TABLE
在这种情况下,效率真的很重要吗?如果您真的需要所有数据,我认为SELECT *在内部会更优化,但我是在没有真正了解数据库的情况下这么说的。
我很想知道在这种情况下最佳做法是什么。
更新:我可能应该指定我真正 想做 的唯一情况SELECT *是当我从一个表中选择数据时,我知道所有列都需要被检索,即使添加了新列也是如此。
然而,鉴于我所看到的响应,这似乎仍然是一个坏主意,并且SELECT *永远不应该用于我曾经想过的更多技术原因。
选择特定列更好的一个原因是它提高了 SQL Server 可以从索引访问数据而不是查询表数据的可能性。
这是我写的一篇文章: 选择查询是不良索引覆盖率的真正原因
它也不易更改,因为任何使用数据的代码都将获得相同的数据结构,无论您将来对表模式进行何种更改。