mysql 查询效率问题请教一下


 SELECT MAX(temperature),MIN(temperature),  HOUR(create_time) time  from par_rdm 
where date(create_time) = '2021-10-25' AND deviceCode='RDM_FS_01'    GROUP BY time;

 SELECT MAX(temperature),MIN(temperature),  HOUR(create_time) time  from par_rdm 
where create_time like '2021-10-25%' AND deviceCode='RDM_FS_01'    GROUP BY time;

上面这两SQL 语句,where 的写法不一样,效率上哪个更高?为什么?


显然第二种写法效率更高,第二种只涉及字符串的匹配,而第一种需要用date函数将时间戳进行格式转换,需要计算花费时间

建议去看看执行计划,如果create_time 没有索引,时间差不多,如果有索引,mysql 版本又是比较低的话 用函数那个不走索引也就是第一个会慢。第二个会快。如果两个执行计划一模一样,时间差不多的。

都不高,你为啥不用between 之类的呢?
where create_time >'2021-10-25' and create_time <='2021-10-25 23:59:59'