2011-09-22 93 views
1

我很好奇MySQL中查询返回的一小组元素的运行时成本是在PHP中,而不是在MySQL中进行排序。在PHP和MySQL中排序小列表(10项)然后返回?

我无法在MySQL中对其进行排序的原因是由于返回的数据组(实际上是2个查询,然后将数据带到PHP端)。

谢谢!

回答

3

十个元素没有区别。但通常你应该总是在MySQL中排序,而不是PHP。 MySQL经过优化,可快速排序并具有适当的数据结构和信息。请参考JOIN s,UNION s和subqueries。他们可能会这样做。

+0

是的,我不认为这对于如此少的元素很重要。我猜想更大的问题是“UNION在MYSQL中的成本是多少”,我倾向于以表演的名义回避它们和子查询。 – csjohn

+0

@csjohn:相当小。两个单独查询的成本和(默认)消除欺骗,因此不会比2个查询更昂贵,并且在整个结果中选择不同。 –

1

你可以用联合组合查询,然后与MySQL

Q1 
UNION 
Q2 
ORDER BY X 
2

我的意见对其进行排序:

的开销是在两种情况下可以忽略不计。优化您的生产力,并为您更轻松地完成任务。电脑在那里帮助你,反之亦然。

如果你真的想优化主机,你有没有考虑让客户端在JavaScript中做到这一点?

我也许会在SQL中这样做,但主要是为了保持逻辑在一个地方(增加内聚力,减少耦合)。

+0

我喜欢你的副臂。在这种特殊情况下,我不能这样做,但我的确喜欢把工作交给客户。 – csjohn