我很好奇MySQL中查詢返回的一小組元素的運行時成本是在PHP中,而不是在MySQL中進行排序。在PHP和MySQL中排序小列表(10項)然後返回?
我無法在MySQL中對其進行排序的原因是由於返回的數據組(實際上是2個查詢,然後將數據帶到PHP端)。
謝謝!
我很好奇MySQL中查詢返回的一小組元素的運行時成本是在PHP中,而不是在MySQL中進行排序。在PHP和MySQL中排序小列表(10項)然後返回?
我無法在MySQL中對其進行排序的原因是由於返回的數據組(實際上是2個查詢,然後將數據帶到PHP端)。
謝謝!
十個元素沒有區別。但通常你應該總是在MySQL中排序,而不是PHP。 MySQL經過優化,可快速排序並具有適當的數據結構和信息。請參考JOIN
s,UNION
s和subqueries。他們可能會這樣做。
你可以用聯合組合查詢,然後與MySQL
Q1
UNION
Q2
ORDER BY X
我的意見對其進行排序:
的開銷是在兩種情況下可以忽略不計。優化您的生產力,併爲您更輕鬆地完成任務。電腦在那裏幫助你,反之亦然。
如果你真的想優化主機,你有沒有考慮讓客戶端在JavaScript中做到這一點?
我也許會在SQL中這樣做,但主要是爲了保持邏輯在一個地方(增加內聚力,減少耦合)。
我喜歡你的副臂。在這種特殊情況下,我不能這樣做,但我的確喜歡把工作交給客戶。 – csjohn
是的,我不認爲這對於如此少的元素很重要。我猜想更大的問題是「UNION在MYSQL中的成本是多少」,我傾向於以表演的名義迴避它們和子查詢。 – csjohn
@csjohn:相當小。兩個單獨查詢的成本和(默認)消除欺騙,因此不會比2個查詢更昂貴,並且在整個結果中選擇不同。 –