select max(buy) from price where marketId=309;
Das Erstellen einzelner Indizes für jede Spalte erlaubt MySQL wahrscheinlich nicht, die Abfrage zu optimieren.
Für diese Abfrage möchten Sie einen zusammengesetzten Index auf (marketId, buy)
.
create index idx_price_market_buy ON price (marketId, buy);
Die Reihenfolge der Spalten im Index ist wichtig:Zuerst filtert die Abfrage nach marketId
(Sie möchten also, dass diese Spalte an erster Stelle im zusammengesetzten Index steht), dann es berechnet den maximalen buy
.