【问题标题】:SQL select statement with either ( * ) or (fields names) which performs better? [duplicate]带有 ( * ) 或 (fields names) 的 SQL select 语句哪个性能更好? [复制]
【发布时间】:2011-03-10 23:40:04
【问题描述】:

可能重复:
Which is faster/best? SELECT * or SELECT column1, colum2, column3, etc.

SELECT * FROM tbl1 

SELECT field1, field2,...... FROM tbl1

SQL engine 是如何执行前面两个 select 语句的(一步一步),哪个执行得更好?

【问题讨论】:

  • @Rami:从表演时间的角度来看?还是从应用程序设计性能的角度来看?我个人认为这两个变体在执行时间方面是相同的。我可能错了。
  • @Simen S:我最初是从表演时间的角度来问这个任务的,但现在我两个都问:)
  • @Simen:甚至没有接近;查看 Brent 的解释:vimeo.com/12510154 时间戳 10:50
  • @p.campbell 是的,它看起来确实像复制品。有趣的是:从性能的角度来看,两者似乎相同(我认为)。啊! +1 可立即识别重复项 :-)
  • @Rami:答案很明确:指定您的列,不要将* 用于您自己的临时查询以外的任何内容。

标签: sql-server performance select


【解决方案1】:

简单的答案:* 很慢,命名字段很快。
命名字段越少越快。
较小的数据字段比较大的数据字段更快。
永远不要选择你不需要的 blob。

【讨论】:

    【解决方案2】:

    看看这个旧的已回答帖子:

    Select * vs Select Column

    问候

    【讨论】:

      【解决方案3】:

      在 MySQL 的情况下,甚至列顺序也很重要(以及它在表定义中的顺序)。

      【讨论】:

        猜你喜欢
        • 2011-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-17
        • 1970-01-01
        • 2011-10-21
        • 1970-01-01
        • 2011-09-30
        相关资源
        最近更新 更多