2017-03-12 30 views
-3

我正在从mysql数据库检索行列表,并需要对数据进行排序。在我的服务器上,通过mysql'order by'子句进行排序,还是使用node.js sort()排序数据,可以减轻压力吗?哪个更有效率?VS订购的Mysql。 Node.js排序

+1

您是否试图用真实世界的数据进行基准测试? – mscdex

回答

0

关于哪种排序更有效,没有通用的答案。这取决于很多情况。

有些情况下,当你在必须排序在mysql中。例如,当您想要从表中获取前N个记录时 - 将整个表检索到node.js并在那里进行排序没有意义。

有些情况下,mysql可能会使用filesort对较慢的记录进行排序,这是您可能会考虑在node.js中进行排序的原因。 explain语句会告诉你,如果排序是通过MySQL中的filesort完成的。 Filesorts通常可以通过索引加速,但是您可能无法将任何额外的字段添加到索引。

消息是:如果查询运行缓慢,则测试是否可以通过在node.js中进行排序来加快速度,但始终先在mysql中进行排序。