Det finns två potentiella indexeringsstrategier här, beroende på vilken av de två tabellerna som visas på vänster sida av den inre kopplingen (endera tabellen kan eventuellt visas på vardera sidan av kopplingen). Med tanke på att HotelRoom
Tabellen innehåller sannolikt många fler poster än Hotel
tabell, skulle jag föreslå att du placerar Hotel
bord på vänster sida av sammanfogningen. Detta skulle innebära att Hotel
tabellen ska skannas och indexet används för kopplingen till HotelRoom
. Sedan kan vi prova att använda följande index på HotelRoom
:
CREATE INDEX hotel_room_idx ON HotelRoom (HotelId, Deleted, Enabled, Name, RoomId);
Detta bör påskynda sammanfogningen avsevärt, täcker WHERE
och täcker även alla kolumner i select on HotelRoom
. Observera att följande förenklade index också kan vara mycket effektivt:
CREATE INDEX hotel_room_idx ON HotelRoom (HotelId, Deleted, Enabled);
Detta täcker bara sammanfogningen och WHERE
klausul, men MySQL kan fortfarande välja att använda den.