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'