我每月运行此查询,因此我想自动执行此操作。但是我无法理解为什么查询1的运行速度比查询2慢得多。我想到的一个可能的问题是表格中的索引问题,我没有看到任何索引问题。
我认为另一件事是由于投射可能是varchar。所以,我将它转换为int,但这似乎也没有解决问题。我在这做错了什么?我该如何解决这个问题?
查询1
select
*
from
table1
where
date = cast((year(from_unixtime(unix_timestamp()))*100+month(from_unixtime(unix_timestamp())))-1 as int);
查询2:
select
*
from
table1
where
date = 201504;