SELECT* - 优点/缺点

Yev*_*erg 6 sql select

我总是从SQL专家那里听说在SELECT语句中使用'*'符号效率不高,最好列出所有字段名称.

但是,在向表中添加新字段然后相应地更新所有存储过程时,我发现对我个人而言并不高效.

那么使用'*'有什么优缺点?
谢谢.

Ode*_*ded 13

一般来说,使用SELECT *并不是一个好主意.

优点:

缺点:

  • 您返回的数据超出了您的需求.假设您添加VARBINARY一行,每行包含200k.您只需要在一个位置为单个记录提供此数据- 使用SELECT *最终可以返回每10行不需要的 2MB
  • 明确使用什么数据
  • 指定列意味着删除列时会出错
  • 查询处理器必须做更多的工作 - 弄清楚表中存在哪些列(感谢@vinodadhikary)
  • 您可以更轻松地找到列的使用位置
  • 如果使用,您将获得连接中的所有列 SELECT *
  • 您不能使用序数引用(尽管使用列的序数引用本身就是不好的做法)
  • 另请参阅答案:不使用select*的原因是什么?

  • 要添加缺点,查询处理器必须首先确定特定表中存在哪些列. (3认同)

JB *_*zet 5

优点:

  • 当你真的需要所有列时,写入时间会更短 select *

缺点:

  • 大多数情况下,您不需要所有列,只需要其中的一些.仅检索您想要的内容更有效
  • 您无法保证检索到的列的顺序(或者至少,查询中的顺序不明显),它禁止按索引访问列(仅按名称).但这些名字也很不明显
  • 当连接具有可能具有相同名称的列的多个表时,您可以为这些列定义别名