我与一位同事在工作中进行了一次讨论,内容是关于SQL查询和排序.他认为您应该让服务器在将行返回给客户端之前进行任何排序.另一方面,我认为服务器可能已经足够忙了,让客户机在获取行之后处理排序一定会更好地提高性能.

有人认为哪种策略最有利于多用户系统的整体性能吗?

推荐答案

通常,您应该让数据库进行排序;如果它没有有效处理此问题的资源,则需要升级您的数据库服务器.

首先,数据库可能已经在您想要的字段上有了索引,所以按排序顺序检索数据可能很简单.第二,客户在获得所有结果之前无法对结果进行排序;如果服务器对结果进行排序,您可以一次处理一行,已经排序.最后,数据库可能比客户机更强大,并且可能可以更高效地执行排序.

Database相关问答推荐

使用存储过程从子表中删除数据

如何将 Scylla DB 中的计数器列重置为零?

即使将enable_seqscan设置为关闭,也未使用数组列上的 GIN 索引?

MySQL FIND_IN_SET 的对面

动态数据模型

MongoDB 单文档大小限制为 16MB

Mysql - 在所有数据库中查找表

如何在 MongoDB 和 PostgreSQL for GIS 之间进行 Select ?

如何决定使用什么 [Sqlite、Realm、CoreData、User-default、JSON 文件] 来存储 iOS 数据?

使用存储过程是一种不好的做法吗?

连接字符串中超时

如何将mysql的默认端口从3306更改为3360

我应该在数据库模式中允许空值吗?

如何在没有验证提取的情况下将 MSSQLServer 数据库提取为 .dacpac?

使用批处理文件执行一组 SQL 查询?

与内连接相反

我将如何为读写操作实现单独的数据库?

使用命令行在 Mysql 中导入压缩文件

有任何使用协议缓冲区的经验吗?

Guice、JDBC 和管理数据库连接