【问题标题】:Which is better: to sort results at the database level or at the application level哪个更好:在数据库级别或应用程序级别对结果进行排序
【发布时间】:2011-03-20 17:25:20
【问题描述】:

假设我们在网站中有一个页面,显示来自数据库的一些记录。

我们需要显示按某列排序的记录。

哪种方法性能更好:检索从数据库排序的数据还是在网格上应用排序?

谢谢

【问题讨论】:

    标签: asp.net .net sql


    【解决方案1】:

    如果存在所需的索引,则在数据库中排序会快得多。

    【讨论】:

      【解决方案2】:

      这取决于您要显示的数据量。对于可以在一个页面上显示的少数记录,并且您确定会保持相当稳定,可以在 UI 端进行排序。

      对于大数据,在数据库中排序更好。如果 UI 支持分页,在数据库端排序将避免将大量数据传递给 UI 和 UI 丢弃除与第一页相关的所有行。

      【讨论】:

      • +1 指出对问题空间和可用选项的分析。
      【解决方案3】:

      排序是数据库最擅长的事情之一。假设你在列上有一个索引,你应该让数据库来做。而且,如果您没有索引,则说明设置不正确。

      【讨论】:

        【解决方案4】:

        我认为任何处理都最好在数据库上完成,因为最终您的应用程序是数据库的接口,因此只需调整您的数据库并创建适当的聚集和非聚集索引以加快排序过程

        【讨论】:

          【解决方案5】:

          如果它正在排序,那么它应该在数据库上完成。如果所需列有索引,则无需再考虑。对于一些记录,可以在 UI 上进行操作

          【讨论】:

            【解决方案6】:

            这取决于如果您经常在不同的列上对数据进行排序,那么最好在应用程序级别进行排序,因为这样会更快,而不是每次都获取排序的数据。

            但如果不是这种情况,并且您有索引,那么在服务器端执行它,因为它会比在应用程序端排序更快。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-10-03
              • 2019-11-17
              • 2011-04-14
              • 2019-10-11
              • 2017-09-13
              • 1970-01-01
              相关资源
              最近更新 更多