如何获得具有最佳SQL性能的最新值

Ye *_*ang 0 mysql sql

我正在运行一个包含两列的表A:datetime和value.表A是一个巨大的数据库,里面有数千万个数据.

在我的SQL语句中(在mysql dialet中),我想

1)获取最新值(最新日期时间的值)

2)获取时间范围内的值

我目前的解决方案

1)

SELECT value
FROM A
WHERE datetime = (
    SELECT MAX(datetime)
    FROM A
    ORDER BY datetime
); 
Run Code Online (Sandbox Code Playgroud)

2)

SELECT value
FROM A
WHERE datetime IN (
    SELECT datetime
    FROM A
    WHERE datetime > start_time AND datetime < finish_time
); 
Run Code Online (Sandbox Code Playgroud)

但是,我怀疑这是一个优化的解决方案,因为内部的SELECT.

是否有更好的方法来实现更好的性能?

非常感谢!

Thi*_*ilo 6

1)

SELECT value FROM A ORDER BY datetime DESC LIMIT 1 
Run Code Online (Sandbox Code Playgroud)

2)

SELECT value FROM A 
   WHERE datetime > :start_time AND datetime < :finish_time 
Run Code Online (Sandbox Code Playgroud)

而且(最重要的是!)你想要一个关于日期时间的索引.