[英]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'
“它們是索引”-可能意味着索引中的每個索引。 這是不一樣的“復合”的索引。 下面的代碼會更好(假設accountingtype
在va
):
INDEX(accountingstate, accountingtype, accountingid)
前2個(均帶有'=')可以任意順序排列; 最后一個(“范圍”)必須在其他之后。
deleted
在另一個表中的事實使優化該部分變得困難。 但是,這可能會有所幫助:
INDEX(deleted, crmid)
更多討論 。
建議您列出您真正需要的列,而不是*
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.