簡體   English   中英

如何調整此MySQL查詢?

[英]How can I tune this MySQL query?

我有一個有效的MySQL查詢,但是速度很慢。 有誰能幫助我提高以下查詢的速度?

    SELECT *
    FROM vtiger_accounting va 
    INNER JOIN vtiger_crmentity vc
    ON va.accountingid = vc.crmid  
    INNER JOIN vtiger_servicecontracts vs
    on   va.accountingrelated2=vs.servicecontractsid
    INNER JOIN vtiger_servicecontractscf vsf
    on       
    vsf.servicecontractsid=vs.servicecontractsid

    WHERE vc.deleted=0 AND va.accountingid > 0
    and va.accountingstate='Pending'
    and accountingtype='Pelunasan TB'

“它們是索引”-可能意味着索引中的每個索引。 這是一樣的“復合”的索引。 下面的代碼會更好(假設accountingtypeva ):

INDEX(accountingstate, accountingtype, accountingid)

前2個(均帶有'=')可以任意順序排列; 最后一個(“范圍”)必須在其他之后。

deleted在另一個表中的事實使優化該部分變得困難。 但是,這可能會有所幫助:

INDEX(deleted, crmid)

更多討論

建議您列出您真正需要的列,而不是*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM