有可能优化这个where子句吗



有人能帮我吗?我对以下功能有疑问;我可以为此创建一个虚拟列吗?

select as1.col,as1.col2,as1.col3 from 
analytics.adjusted_sale_velocity
where 
date(as1.created_datetime)=(
select 
max(
date(created_datetime)
)  
from 
analytics.adjusted_sale_velocity
) 

MySQL优化器不会在WHERE子句中的列被函数date包装后使用索引。

您的查询可能写得有点不同:

select as1.col,
as1.col2,
as1.col3 
from  adjusted_sale_velocity a
inner join ( select  max(created_datetime) as created_datetime   
from adjusted_sale_velocity
) as max_dt on left(a.created_datetime,10) = left(max_dt.created_datetime,10) ;

试着让我知道它是否更快。

最新更新