Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - SQLite Comment améliorer cette requête très simple ?

1) Assurez-vous d'avoir un index sur l'horodatage

2) En supposant que id_tick est à la fois la CLÉ PRIMAIRE et l'index clusterisé, et en supposant que id_tick s'incrémente en fonction du temps (puisque vous faites un MAX)

Vous pouvez essayer ceci :

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)

Cela devrait cependant être similaire aux performances de janmoesen, car il devrait y avoir une corrélation de page élevée entre id_tick et l'horodatage dans tous les cas