Heim  >  Fragen und Antworten  >  Hauptteil

Kann diese where-Klausel optimiert werden?

Kann mir jemand helfen, dieses Problem zu lösen? Ich habe eine Frage zur folgenden Funktion: Kann ich dafür eine virtuelle Spalte erstellen?

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 Tage vor311

Antworte allen(1)Ich werde antworten

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

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

    Antwort
    0
  • StornierenAntwort