选择最接近给定时间的记录的最快方法

时间:2017-08-06 16:19:32

标签: mysql datetime

我有一组记录,每个记录都有一个DateTime字段。每条记录的时间都高于或等于之前的记录。

我需要一个快速查询,它会找到时间最接近提供的时间项的记录。

做我想做的事情的方法是使用以下队列:

select * from `mytable` order by abs(`time`-@mytime) asc limit 0,1;

但这需要相当长的时间才能运行。

有没有更好的方法来编写此查询?

更新 这是表格的创建声明:

                    CREATE TABLE  IF NOT EXISTS `mydatabase`.`mytable` (
                      `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
                      `itemid` INTEGER UNSIGNED NOT NULL,
                      `time` DATETIME NOT NULL,
                      `closeTime` DATETIME,
                      `direction` TINYINT UNSIGNED NOT NULL,
                      `price` DECIMAL(65,30) NOT NULL,
                      `volume` DECIMAL(65,30) NOT NULL,
                      PRIMARY KEY (`id`)
                    )
                    ENGINE = InnoDB;

0 个答案:

没有答案