【问题标题】:Order By or sort? [closed]排序还是排序? [关闭]
【发布时间】:2020-03-02 20:05:03
【问题描述】:

我不知道这个问题是否像在我脑海中听起来那样愚蠢,但是更明智的做法是什么;在 SQL 中使用 Order By 或在逻辑代码中获取结果后进行排序;在性能方面更明智的决策是什么?

【问题讨论】:

  • 让 dbms 执行 ORDER BY。 (并确保它有一个合适的索引。)
  • ORDER BY of course.
  • 我想你会在下面的线程stackoverflow.com/questions/1883264/…得到答案
  • 显然是以有序的形式从 db 中获取数据。如果您按需要处理时间和资源的逻辑进行排序,则会稍微延迟该过程。
  • 要么。吸一口,看看。这实际上取决于您的特定用例。因此,虽然不傻,但这个问题归结为意见,这使它脱离了 SO 的话题。

标签: mysql sql performance sorting sql-order-by


【解决方案1】:

有很多理由认为在数据库中排序是更好的选择:

  • 通常,数据库服务器比客户端计算机更强大。
  • 数据库可以优化查询,所以可能不需要排序。例如,MySQL 可能能够使用索引,完全避免排序。
  • 数据库可以利用额外的处理器(可能还有其他资源)来加速排序。

这种逻辑不仅适用于排序,也适用于其他大型数据操作。通常,在数据库上进行工作是更好的选择。

当然,如果您只有少数几行,那么您可能根本不会注意到太大的差异——对 10 行进行排序不会花费太多时间。

【讨论】:

    【解决方案2】:

    我相信,如果您要对一大块数据进行排序,那么请使用 ORDER BY 并在数据库本身中进行排序。如果您正在对一小部分数据进行排序,那么您也可以在 DB 或您的代码中对其进行排序。

    有关更多信息,您可以查看以下主题 database sort vs. programmatic java sort

    【讨论】:

      猜你喜欢
      • 2014-01-08
      • 2023-01-18
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 2021-12-25
      • 2010-10-03
      • 1970-01-01
      相关资源
      最近更新 更多