据我所知,使用SELECT * FROM表被认为是一种不好的做法。这背后的一个原因是你从表中选择所有列,并且如果将来修改表并且添加了额外的列,你也将获取这些列,并且可能不需要那些。
假设在编写SELECT *时,第一次确实需要选择所有列。
我的问题是:还有其他原因可能是一种不好的做法吗?
答案 0 :(得分:1)
另一个原因可能是带宽被消耗:如果你只需要一个或两个信息,获取所有信息是没用的。
接收数据的应用程序也较慢,因为它必须获取大量数据,而只需要少量数据。
答案 1 :(得分:1)
首先我想到的是投影the Wikipedia covers that part pretty nice。在DBA website中你有一个很好的问题。
您不仅错过了对将要呈现的列的控制,还错过了对列顺序的控制。通过指定它们,您可以完全控制结果集,并根据您真正需要的元素优化其大小。
要回答您的问题,您也错过了控制每列位置的可能性。
SELECT * FROM table; # it would depend of the table internal order
['Surname','Office','Name','Irrelevant']
SELECT Name,Surname,Office FROM table; # you decide which column to show the element
['Name','Surname','Office']