Java hibernate的orderBy和Collections.sort()之间的差异

Java hibernate的orderBy和Collections.sort()之间的差异,java,hibernate,orm,Java,Hibernate,Orm,使用hibernate的order by和Java的Collections.sort()有什么区别?Collections.sort()的时间复杂度为O(nlogn),使用orderBy必须为O(1)。但是,数据库处理也必须有一些开销。在无法使用orderBy的情况下可以使用Collections.sort()吗?请记住,db上的order by适用于所有行。而您只能将Collections.sort应用于“已加载”行 因此,如果您有1000行,并且希望根据顺序选择前10行,则可以使用集合。排序

使用hibernate的order by和Java的Collections.sort()有什么区别?Collections.sort()的时间复杂度为O(nlogn),使用orderBy必须为O(1)。但是,数据库处理也必须有一些开销。在无法使用orderBy的情况下可以使用Collections.sort()吗?

请记住,db上的
order by
适用于所有行。而您只能将Collections.sort应用于“已加载”行


因此,如果您有1000行,并且希望根据顺序选择前10行,则可以使用
集合。排序
您需要在排序之前获取所有行,而使用
排序依据
您将只选择所需的10行。

请记住,db上的
排序依据适用于所有行。而您只能将Collections.sort应用于“已加载”行


因此,如果您有1000行,并且希望根据顺序选择前10行,则可以使用
集合。排序
您需要在排序之前获取所有行,而使用
按顺序
您将只选择所需的10行。

您可以使用任何一行。通常,它们都应该是O(nlogn)(因为数据库还必须应用排序算法,并且它并不比集合中的排序算法好)

如果可能的话,我会使用数据库的orderBy(*),因为这样可以限制从数据库发送的数据量(至少在您只对匹配数据的第一部分感兴趣的情况下)


(*)在某些情况下,您希望实现一个“奇怪的”排序顺序(即“按第三个单词的第二个字母排序”),然后最好用Java实现,但在大多数情况下,orderBy就足够了,因此更可取。

您可以使用任何一种。通常,它们都应该是O(nlogn)(因为数据库还必须应用排序算法,并且它并不比集合中的排序算法好)

如果可能的话,我会使用数据库的orderBy(*),因为这样可以限制从数据库发送的数据量(至少在您只对匹配数据的第一部分感兴趣的情况下)


(*)在某些情况下,您希望实现一个“奇怪的”排序顺序(即“按第三个单词的第二个字母排序”),然后最好用Java实现,但在大多数情况下,orderBy就足够了,因此更可取。

在无法使用orderBy的情况下,可以使用Collections.sort()吗?
-是,为什么不可以?orderBy()仅在数据库服务器可以使用索引时才优化。
在无法使用orderBy的情况下可以使用Collections.sort()吗?
-是,为什么不可以?orderBy()仅在数据库服务器可以使用索引时才优化。