select max(buy) from price where marketId=309;
La création d'index individuels sur chaque colonne ne permet probablement pas à MySQL d'optimiser la requête.
Pour cette requête, vous voulez un index composé sur (marketId, buy)
.
create index idx_price_market_buy ON price (marketId, buy);
L'ordre des colonnes dans l'index est important :d'abord les filtres de requête sur marketId
(vous voulez donc que cette colonne soit en première position dans l'index composé), puis il calcule le maximum d'buy
.