Ich habe folgende Abfrage, die mehr als eine Minute zur Ausführung benötigen, wie kann ich es optimieren. Es ist langsam wegen Bestellung von o.id desc, wenn ich es entfernen Abfrage führt es einige ms.Wie kann ich diese Abfrage optimieren, dauert mehr als eine Minute zum Ausführen
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;
Es folgt das Ergebnis erklären
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
Alle Tabellen sind InnoDB und schließt sich auf primärem und Fremdschlüssel. Andere als die Indizes sind auf E-Mail Spalte in Person und Status Spalte in Bestellen
Anzahl der Datensätze in jeder Tabelle
Person: 1.300.000 Produkt: 7000 Auftrag: 70.000
schreiben Sie bitte Ihre Tabellenstruktur sowie –
haben Sie Index für jedes Attribut hinzufügen Sie für die Beziehungen verwenden? (person_id, ID, Produkt_ID, ..)? – blejzz
Bitte posten Sie alle Indizes, die in diesen Tabellen existieren – MatBailie