【问题标题】:SELECT Query Best practiceSELECT 查询最佳实践
【发布时间】:2013-05-10 19:46:52
【问题描述】:

我知道 SELECT * 被认为是不好的做法,因为它可以返回不需要的信息。

但是这个呢:

假设我有一个 4 列的表,第 1-4 列

这两个查询之间有什么区别(比如速度、性能)吗?

SELECT col_1,col_2,col_3,col_4 FROM ...

SELECT col_2,col_4,col_1,col_3 FROM ...

仅供参考:第一次查询与数据库列的顺序相同,但第二次查询不关心数据库表列的顺序。

【问题讨论】:

  • @Raj 这两个查询之间是否存在不同(如快速、性能)。选择 col_1,col_2,col_3,col_4 并选择 col_2,col_4,col_1,col_3

标签: mysql sql sql-server sqlite


【解决方案1】:

出于所有意图和目的,不。

【讨论】:

  • 是的。这就是我的想法。我不知道为什么我对此有疑问。但我必须告诉你这些。SELECT * 查询比返回不需要的字段有更多的问题。非常感谢您的帮助
【解决方案2】:

如果没有where 子句,所有三个查询都将执行相同的操作,假设您已经列出了表中的所有列。如果您有主键,那么这些查询将执行聚集索引扫描,否则执行表扫描,它们基本上是相同的。

【讨论】:

  • 好吧,我只给你一个例子。因为很多时候我们没有从一张表中检索所有列。但我明白你的意思。谢谢
【解决方案3】:

两个查询的速度应该相同。

为确保这一点,请在每次查询之前和之后打印一个时间戳,以便您自己查看。

祝你好运,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2013-01-06
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多