2013-01-16 123 views
0

這是用於在線門戶的產品表結構。
當前產品表有超過100萬條記錄。通過SQL查詢排序

enter image description here

我創建了狀態&交付ID索引。
我有性能問題時,清單產品由ORDER BY status DESC, delivery_id ASC
完整的查詢:

SELECT product_name FROM product ORDER BY status DESC, delivery_id ASC LIMIT 10 

如何提高這個查詢執行得更快?

+0

請貼解釋計劃 –

+0

看看文檔,以便通過優化HTTP: //dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html –

回答

1

由於ORDER BY Optimization下記載:

在某些情況下,MySQL不能使用索引來解決ORDER BY,儘管它仍然使用索引來找到WHERE條款相匹配的行。這些情況包括:

[ deletia ]

  • 你混合ASCDESC

    SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;
+0

如何我們解決這個問題嗎? – Basilevs

+0

是否有解決方案? –

+0

@Basilevs:一種選擇是以不同的方式定義'status'或'delivery_id',以便所需的排序不需要將它們排列在相反的方向上。 – eggyal