【问题标题】:Is it better to perform sort logic for List through orderby in the database, or is it better to use Collection.sort() in Java logic?在数据库中通过orderby对List进行排序逻辑更好,还是在Java逻辑中使用Collection.sort()更好?
【发布时间】:2023-01-14 09:58:52
【问题描述】:

当你想对一些数据进行排序并返回时,你应该使用哪种逻辑进行排序?

当接收任何类型的数据作为列表时,在DB端通过Order by接收排序后的数据并按原样使用它更好吗?还是在DB端不使用orderby,原样接收数据,然后在spring端排序更好?

参考用的是spring-boot,jpa,QueryDSL,DB是mysql。

如果你能告诉我更好的方法和原因,我将不胜感激!!!

【问题讨论】:

标签: database spring-boot jpa spring-data-jpa querydsl


【解决方案1】:

一般来说,能用SQL做就用SQL做。

数据库引擎在快速高效地执行 SQL 方面确实令人印象深刻。

仅当行数相当有限且 order by 在 SQL 中执行起来极其复杂时,我才会考虑在 JVM 中执行

【讨论】:

    【解决方案2】:

    这个答案是对@Jens Schauder 答案的补充。一个好的架构会将数据访问与业务逻辑以及任何超出范围的内容(网络层等)分开。

    当您从数据库抽象层收集数据时,请确保使用保留顺序的数据结构。还要确保在数据通过应用程序时保留此顺序。

    我见过这样的场景,数据访问层对数据进行排序,然后工程师使用一个无序的集合,E.G. Set,而不是List

    好的单元测试会让你看对的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      相关资源
      最近更新 更多