对数据进行排序的最佳方法[重复]
Posted
技术标签:
【中文标题】对数据进行排序的最佳方法[重复]【英文标题】:Best way to sort data [duplicate] 【发布时间】:2013-12-19 06:28:00 【问题描述】:在我的 Android 应用程序中,我必须使用从 数据库 获取的数据填充 arraylist 对象。数据也应该排序。所以我有两种方法。
-
使用SQL从数据库中取出数据进行排序并放入数组
从数据库中获取数据并将它们放入数组,稍后再对数据进行排序
其中更高效且对运行时的影响更小。需要一些帮助。谢谢!
【问题讨论】:
我希望它在 SQL 中,因为数据库引擎正是为此类任务而设计的,但我没有证据。 我的投票投给第一个选项 我的也是第一个选项 在sql中排序更快更高效。但是,您必须评估它是否符合我们的要求。如果没有,您将必须为您的对象实现一个可比较的接口(如果它们很复杂。用于对象的自定义排序)并完成工作。或者你在两边都执行排序,这样一些负载将被共享,部分排序的行可以在 java 代码中进一步排序。 【参考方案1】:使用SQL从数据库中取出数据进行排序并放入 数组
如果您能够在数据库级别对数据进行排序,那就去做吧。在数据库级别排序比在内存中排序要快得多 - 特别是如果您的内存在许多记录的情况下是有限的。 还可以通过使用提供许多数据库的索引来提高性能。
因此,如果您可以并且能够在数据库中排序,请在数据库中进行排序。如果没有,请在应用程序中进行排序,但在这里您会受到内存的限制,并且排序速度要慢得多。
注意: 值得一提的是,如果您的排序算法在运行时变化很大(频率很高并且在从数据库中检索数据后开始变化),那么考虑在应用程序中排序和不在数据库中并制作一些 分析侧重于应用程序要求(例如性能)的优势和劣势。
【讨论】:
【参考方案2】:这取决于很多事情。但对于一般情况,从数据库排序更好,因为它可能在内部使用索引。
【讨论】:
【参考方案3】:如果您的数据集很小,那么您可以像进行复杂排序一样以编程方式对数据进行排序。
但如果您的数据集很大,那么 DB 排序是最好的方法。在我看来,最好使用 DB 排序。查看 SQL 中的ORDER BY
。
【讨论】:
【参考方案4】:如果您使用一些简单的逻辑进行排序,那么最好在从数据库中获取时进行排序。如果是复杂的逻辑,那么 Java 端排序是更好的选择。
【讨论】:
【参考方案5】:数据库是为按特定顺序检索数据而构建的,因此如果您有选择,请使用数据库进行排序。
但是,如果您的排序要求很复杂并且难以用数据库语言进行编码,那么您应该自己完成。
【讨论】:
以上是关于对数据进行排序的最佳方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章