【问题标题】:Is there a performance difference between select * from tablename and select column1, column2 from tablename? [duplicate]select * from tablename 和 select column1, column2 from tablename 之间是否存在性能差异? [复制]
【发布时间】:2009-12-08 09:24:12
【问题描述】:

可能的重复:
Select * vs Specifying Column Names
Which is faster/best? SELECT * or SELECT column1, colum2, column3, etc.

select * from tablenameselect column1, column2 from tablename 之间是否存在性能差异?

当为select * from时,数据库拉出所有超过2个字段/列的字段/列。那么第一次查询会花费更多时间/资源吗?

【问题讨论】:

标签: sql mysql query-optimization


【解决方案1】:

如果你做select * from,有两个性能问题:

  1. 数据库必须确定表中存在哪些列
  2. 有更多数据从服务器发送到客户端(所有列而不是只有两列)

【讨论】:

    【解决方案2】:

    一般来说答案是肯定的!因为对于小型数据库,您看不到性能差异......但如果您使用不合格的 * 选择器作为简写,那么对于最大的数据库可能会有相关差异!

    一般来说,最好实例化要从中检索数据的每一列!

    我可以建议您阅读the official document,了解如何优化 SELECT 和其他语句!

    【讨论】:

      【解决方案3】:

      在每种情况下,您都应该测试您的更改。您可以使用分析器来执行此操作。

      mysql 见:http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html

      【讨论】:

        【解决方案4】:

        有区别,特别是在其他列是 BLOB 或(大)TEXT 字段的情况下。如果您的表只包含两列,则没有区别。

        【讨论】:

          【解决方案5】:

          我已经检查了分析器 - 答案似乎是否定的 - 两个查询都需要相同的时间来执行。 该表的字段相对较小,因此结果集不会因大量我可能不需要的数据而膨胀。 如果您的结果集中有不需要的大型数据字段,请不要将它们包含在查询中

          【讨论】:

            【解决方案6】:

            虽然这可能与一次运行一个查询没有太大区别,但如果您通过应用程序使用 select *,尤其是当您在执行连接时使用它时,您肯定会返回不需要的数据,那么您显然除了开发人员的懒惰之外,没有其他理由减慢系统速度。 Select * 几乎不应该在生产系统上使用。

            【讨论】:

              【解决方案7】:

              嗯,我想这取决于您所谈论的性能类型:数据库或程序员。

              作为一个不得不清理写在

              中的数据库查询的人说话
              select * from foo
              

              格式,这简直是一场噩梦。数据库可以而且确实会发生变化,因此现在整洁的规范化数据库由于性能原因已经变得非规范化,并且为了获取所有内容而编写的大量草率查询现在正在大量返回大量数据。

              如果您不需要它,请不要索取。花点时间,想想那些会追随你并需要处理你选择的人。

              我的 LIMS 中仍有整个部分需要整理,感谢您提醒我。 -- 叹息

              【讨论】:

                猜你喜欢
                • 2014-01-27
                • 2016-09-18
                • 1970-01-01
                • 2018-02-20
                • 2013-10-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多