時,MySQL查詢變得非常緩慢我有一個表,有1500萬行。使用Order By
下面的查詢返回約5億美元(但在15行有限公司)在不到1秒的記錄:
SELECT messages.* FROM messages
INNER JOIN gateways ON
messages.gateway_id=gateways.id
INNER JOIN orders ON
gateways.order_id=orders.id
WHERE orders.user_id=6500 AND messages.deleted=0
AND messages.type='Out' LIMIT 15;
但是,當我加入Order By
ID DESC
到它的結束,它變成約極其緩慢〜40秒:
SELECT messages.* FROM messages
INNER JOIN gateways ON
messages.gateway_id=gateways.id
INNER JOIN orders ON
gateways.order_id=orders.id
WHERE orders.user_id=6500 AND messages.deleted=0
AND messages.type='Out' ORDER BY messages.id DESC LIMIT 15;
任何幫助將不勝感激。
您是否已經在需要的列中使用DESC順序的索引? – winter
是的,我通過'在主鍵列上命令'(id) –
你得到了多少行(每個用戶有多少行)?你可以添加解釋計劃嗎? ''by''使用'id'上的索引很可能不是一個好選擇,但MySQL可能會使用它。你可能需要一個子查詢。 – Solarflare