MySQL查找最大查询的速度非常慢(使用子查询)


select a.*
from  tb_szjc_data a
where   deviceSN= '000'
and createtime=(select max(createtime)
from  tb_szjc_data
where   deviceSN= '000') 
select a.*
from  tb_szjc_data a
where   
createtime=(select max(createtime)
from  tb_szjc_data
where   deviceSN= a.deviceSN) and a.deviceSN= '000'

为什么第一个SQL查询非常快?MySQL版本为5.7

deviceSN= '000' Data 2W

更快的

SELECT *
FROM tb_szjc_data
WHERE deviceSN = '000'
ORDER BY createtime DESC
LIMIT 1

如果你也有

INDEX(deviceSN, createtime)

至于";为什么";一个比另一个快,我们需要看到SHOW CREATE TABLE,尤其是索引。

最新更新