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

Quando ORDINO PER una colonna calcolata, la query rallenta in modo significativo:può essere accelerata?

(consolidando la discussione sopra)

Non puoi ordinare in modo efficiente in base a un risultato di calcolo. Per fare in modo che questa query funzioni velocemente, crea una ranking colonna che contiene c.age-UNIX_TIMESTAMP(c.newdate) . Quindi crea un indice su id e ranking , ovvero CREATE INDEX id_ranking ON c (id, ranking) per indicizzare sia GROUP BY che ORDER BY.