由於某些原因,在添加2個以上ORDER BY
後,我的查詢變得非常緩慢。有人可以幫我解決它嗎?我真的需要使用以下ORDER BY
條款:MySQL - 添加多個ORDER BY後頁面加載速度緩慢
ORDER BY candidates.user_id DESC, candidates.usr_type ASC, all_users.user_id DESC
由於某些原因,在添加2個以上ORDER BY
後,我的查詢變得非常緩慢。有人可以幫我解決它嗎?我真的需要使用以下ORDER BY
條款:MySQL - 添加多個ORDER BY後頁面加載速度緩慢
ORDER BY candidates.user_id DESC, candidates.usr_type ASC, all_users.user_id DESC
主要的問題是你正在混合排序順序,這在MySQL中很慢。
要麼ORDER BY
一切ASC或DESC,但不要混合它們。
一個解決方案是爲usr_type
定義一個額外的副本字段,其運行順序相反。 像這樣
Example
-------------------------------
id usr_type alt_usr_type
1 1 99
2 2 98
3 1 99
4 5 95
現在,您可以定義選擇作爲
ORDER BY candidates.user_id DESC
, candidates.alt_usr_type DESC
, all_users.user_id DESC
和您的查詢將運行得更快。
參見:http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html
如果那是真的,我會感到驚訝! –
http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html'tis true though! –
有+1先生! –
運行在您的查詢說明,包括在你的答案的輸出,例如解釋選擇foo FROM bar ORDER BY xxx; –
不知何故,我改變了左連接的幾個內連接,它不再需要很長時間,永遠不會再使用內連接。編輯:只有<4結果更快,更多結果更慢 – JohnU43
您最好理解真正發生的事情,而不是一蹴而就地決定「永遠不使用內連接」 –