在工作中,我们经常需要检索出最新条数据,能够实现该功能的sql语句很多,下面列举三个进行效率对比
本次实验的数据表中有55万条数据,以myql为例:
方式1:
SELECT * FROM t_device_monitor WHERE uploadTime in(select max(uploadTime) from t_device_monitor)
该语句平均耗时2.3秒
方式2:
SELECT * FROM t_device_monitor WHERE uploadTime =(select max(uploadTime) from t_device_monitor)
该语句平均耗时2.0秒
方式3:
SELECT * FROM t_device_monitor ORDER BY uploadTime DESC LIMIT 0,1
该语句平均耗时0.8秒
综上,方式3效率最高
方式3使用limit 和 order by结合使用,该结合如果排序字段有相等的记录,结果可能会出现陷阱。具体可以参考
https://blog.csdn.net/qiubabin/article/details/70135556