select max(buy) from price where marketId=309;
Criar índices individuais em cada coluna provavelmente não permite que o MySQL otimize a consulta.
Para esta consulta, você deseja um índice composto em
(marketId, buy)
. create index idx_price_market_buy ON price (marketId, buy);
A ordem das colunas no índice é importante:primeiro a consulta filtra em
marketId
(então você quer esta coluna na primeira posição no índice composto), então ele calcula o máximo de buy
.