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