首页  >  问答  >  正文

这个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
      )

P粉757640504P粉757640504182 天前308

全部回复(1)我来回复

  • P粉166675898

    P粉1666758982024-04-02 13:27:50

    一旦 WHERE 子句中的列用函数(在您的情况下为 date)包装,MySQL 优化器将不会使用索引。

    您的查询可能会略有不同:

    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) ;

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

    回复
    0
  • 取消回复