Mysql
 sql >> Database >  >> RDS >> Mysql

La query di selezione MySQL è terribilmente lenta

select max(buy) from price where marketId=309;

La creazione di indici individuali su ciascuna colonna probabilmente non consente a MySQL di ottimizzare la query.

Per questa query, desideri un indice composto su (marketId, buy) .

create index idx_price_market_buy ON price (marketId, buy);

L'ordine delle colonne nell'indice è importante:prima la query filtra su marketId (quindi vuoi che questa colonna sia in prima posizione nell'indice composto), quindi calcola il massimo buy .