簡體   English   中英

在MySQL上建立索引

[英]Indexing on MySQL

我有一個帶有子查詢的批量查詢。 當我在開發服務器上運行查詢時,我的查詢工作正常,但是當在實時服務器上嘗試查詢時,查詢會花費太多時間來產生輸出。 我認為這是因為實時服務器上的大數據。 誰能幫助我如何在MySQL上建立索引查詢,以減少執行時間。

這是我的查詢:

SELECT prd.fldemployeeno AS Empno,
       (SELECT fldemployeename FROM tblprofile prf WHERE prf.fldemployeeno = prd.fldemployeeno LIMIT 0,1) AS Empname,
       '01' AS `Week`,
       COUNT(DISTINCT isAud.fldid) AuditedFiles, 
       COUNT(qua.seqid) ErrorCount, 
       COUNT(DISTINCT qua.fldid) OrdersWithError
  FROM tbldownloadITL dwn 
 INNER JOIN tblproductionITL prd 
    ON dwn.fldid = prd.fldglobalid
 INNER JOIN (SELECT p.fldemployeeno,fldglobalid,p.fldstarttime,COALESCE(q.fldstarttime,p.fldstarttime) `AuditDate`
               FROM tblproductionitl p
               LEFT JOIN tblqualityaudit q
                 ON p.fldemployeeno=q.fldemployeeno
                AND p.fldstarttime=q.fldprodstarttime
                AND p.fldglobalid=q.fldid
              WHERE p.fldprojectgroup='PROJGROUP') temp
    ON prd.fldglobalid=temp.fldglobalid
   AND prd.fldemployeeno=temp.fldemployeeno
   AND prd.fldstarttime=temp.fldstarttime
 INNER JOIN tblisauditedITL isAud 
 USING (fldid)
  LEFT JOIN tblqualityaudit qua 
    ON qua.fldid = dwn.fldid
   AND qua.fldbusunit = dwn.fldbusunit
   AND qua.fldprojectGroup = dwn.fldprojectGroup
   AND qua.fldemployeeno = prd.fldemployeeno
   AND qua.fldprodstarttime = prd.fldstarttime
   AND qua.flderrorstatus != 'NOT ERROR' 
  LEFT JOIN tblerrorcategory 
 USING (flderrorcategoryid) 
  LEFT JOIN tblerrortypes
 USING (flderrortypeid)
 WHERE dwn.fldbusunit = 'BUSUNIT'
   AND dwn.fldprojectGroup = 'PROJGROUP'
   AND temp.AuditDate BETWEEN '2011-07-29 00:00:00' AND '2011-07-29 23:59:59'
 GROUP BY prd.fldemployeeno 
 ORDER BY Empname

這也是查詢的描述:

在此處輸入圖片說明

如果您可以訪問,我建議在您的服務器上安裝Sphinx。 這樣一來,您便可以觸手可及的索引資源來進行極快的搜索,此外,您還可以添加所謂的“ delta”索引的執行,以實時更新mysql數據庫。 它是高度可定制的。 希望這會對您有所幫助。

http://sphinxsearch.com/

暫無
暫無

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

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