2011-09-22 45 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

相關問題