我有以下查詢需要一分多鐘才能執行,我該如何優化它。它的速度很慢,因爲命令由o.id desc,如果我刪除它查詢執行它幾個毫秒。如何優化此查詢,執行時間超過一分鐘
select o.*, per.email, p.name
from order o
inner join product p
on o.product_id=p.id
inner join person per
on o.person_id=per.id
order by o.id desc
limit 100;
以下是解釋
1 SIMPLE p index PRIMARY FK2EFC6C1E5DE2FC 8 NULL 6886 Using index; Using temporary; Using filesort
1 SIMPLE o ref FK67E9050121C383DB,FK67E90501FC44A17C FK67E90501FC44A17C 8 dev.p.id 58
1 SIMPLE per eq_ref PRIMARY PRIMARY 8 dev.o.person_id 1 Using index
所有的表都InnoDB的結果,並加入是對主鍵和外鍵。除此之外指標上電子郵件列人和狀態列訂單
的每個表中的記錄數
人:1300000 產品7,000 訂購70000
請發表您的表結構以及 – 2012-03-29 11:44:10
你們每個添加索引屬性您正在使用的關係? (person_id,id,product_id,..)? – blejzz 2012-03-29 11:45:35
請發佈這些表上存在的所有索引 – MatBailie 2012-03-29 11:56:46