Ich benutze MySQL und InnoDB. Angenommen , dass ich die folgende Abfrage haben:Was ist der beste Index für INNER JOINs mit einer WHERE- und einer ORDER BY-Klausel?
SELECT id FROM
Foo
INNER JOIN
Bar
ON Foo.id = Bar.fooId
WHERE Foo.column1 = N
ORDER BY Foo.column2 DESC LIMIT 100
Hier Foo.id
ist der Primärschlüssel und Bar.fooId
ist der FK.
Was ist der beste Index, den ich Foo
und Bar
Tabellen hinzufügen sollte?
Derzeit habe ich einen Index auf (Foo.column1, Foo.column2)
in Foo
Tabelle. Sollte ich auch diesen zusammengesetzten Index Foo.id
hinzufügen? Was ist der Auftrag?
Ich konnte keinen formalen Hinweis finden, um dieses Thema zu behandeln.
Hoffe, dass Foo.id Primärschlüssel & Bar.fooId ist Fremdschlüssel. Recht? –
@DipanwitaKundu Ja. Bearbeitet. – Mowji
KEINE Notwendigkeit, foo.id als zusammengesetzten Index hinzuzufügen. Es ist ausreichend. –