使用SELECT * FROM表

时间:2014-01-03 14:32:33

标签: mysql sql

据我所知,使用SELECT * FROM表被认为是一种不好的做法。这背后的一个原因是你从表中选择所有列,并且如果将来修改表并且添加了额外的列,你也将获取这些列,并且可能不需要那些。

假设在编写SELECT *时,第一次确实需要选择所有列。

我的问题是:还有其他原因可能是一种不好的做法吗?

2 个答案:

答案 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']