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

MySQL - SQLite Come migliorare questa query molto semplice?

1) Assicurati di avere un indice sul timestamp

2) Assumendo che id_tick sia sia la CHIAVE PRIMARIA che l'indice cluster, e supponendo che id_tick aumenti in funzione del tempo (dato che stai facendo un MAX)

Puoi provare questo:

SELECT id_tick, price, timestamp 
FROM EURUSD 
WHERE id_tick = (SELECT id_tick
                   FROM EURUSD WHERE timestamp <='2010-04-16 15:22:05'
                   ORDER BY id_tick DESC
                   LIMIT 1)

Tuttavia, dovrebbe essere simile alle prestazioni di janmoesen, poiché in ogni caso dovrebbe esserci un'elevata correlazione della pagina tra id_tick e timestamp