4 回答
TA贡献1829条经验 获得超6个赞
select *
如果在SQL语句中指定列,则如果从表中删除该列并执行查询,则SQL执行引擎将出错。 您可以更容易地扫描使用该列的代码。 您应该始终编写查询,以获取最少的信息。 正如其他人提到的,如果您使用序号列访问,则永远不要使用SELECT* 如果SQL语句连接表,则选择*为联接中所有表的所有列提供
select *
...
应用程序使用的列是不透明的。 DBA及其查询分析器无法帮助您的应用程序性能低下 当发生更改时,代码更加脆弱。 您的数据库和网络正在遭受损失,因为它们带来了太多的数据(I/O)。 数据库引擎优化是最小的,因为您将带回来所有数据,而不管(逻辑)。
Select *
TA贡献1893条经验 获得超10个赞
TA贡献1111条经验 获得超0个赞
以一种迂回的方式,您正在打破关于在可能的情况下使用严格类型的模块化规则。直白几乎是普遍更好的。 即使您现在需要表中的每一列,以后也可以添加更多的列,这将在每次运行查询时被删除,并且可能会影响性能。这会损害性能,因为 你正在从电线上提取更多的数据; 因为您可能会挫败优化器将数据直接从索引中提取出来的能力(对于所有属于索引的列的查询)。而不是在表本身中进行查找。
何时使用SELECT*
添加回答
举报