搜尋

首頁  >  問答  >  主體

這個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粉757640504265 天前441

全部回覆(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
  • 取消回覆