我在哪里排序?

Tri*_*ian 9 java mysql sql sorting

我有一个数据库,我查询,我不确定在哪里执行结果的排序,到目前为止,我有以下选项.

  • 在MySQL查询.
  • 在列表级别(使用LinkedList)
  • 在显示结果之前使用比较器对未排序的列表进行排序(基本上在jsp中)

List由ObjectDTO组成,因此它会更有效率.有任何想法吗?

n8w*_*wrl 16

数据库.使用索引和有关数据的其他信息,db's非常擅长这一点.


Mar*_*ers 13

如果可能的话,您应该在数据库中进行排序.

  • 数据库可以使用索引.如果有合适的索引可用,则可以按排序顺序从磁盘读取结果,从而提高性能 - 无需额外的O(n log(n))排序步骤.
  • 如果您只需要第一个x结果,您还可以最大限度地减少数据传输(减少网络传输,如果有合适的索引,还可以减少磁盘访问).

  • @Triztian:`ArrayList`更适合快速检索."LinkedList"只有更快的删除(如果唯一目的是显示结果,则不需要). (2认同)