[英]mysql query execution consuming time
我在SO中看到了幾個問題,並且在此基礎上,我還改進了sql查詢。 但有時需要12秒,或者有時需要3秒才能執行。 所以最短的時間我們可以3秒。 查詢就是這樣
SELECT ANALYSIS.DEPARTMENT_ID
,SCORE.ID
,SCORE.KPI_ SCORE.R_SCORE
,SCORE.FACTOR_SCORE
,SCORE.FACTOR_SCORE
,SCORE.FACTOR_SCORE
,SCORE.CREATED_DATE
,SCORE.UPDATED_DATE
FROM SCORE_INDICATOR SCORE
,AG_SENTIMENT ANALYSIS
WHERE SCORE.TAG_ID = ANALYSIS.ID
AND ANALYSIS.ORGANIZATION_ID = 1
AND ANALYSIS.DEPARTMENT_ID IN (1,2,3,4,5)
AND DATE (ANALYSIS.REVIEW_DATE) BETWEEN DATE ('2016-05-02') AND DATE ('2017-05-02')
ORDER BY ANALYSIS.DEPARTMENT_ID
現在一個表SCORE_INDIACATOR
有19345116,后來共有19057025行。 和我加上索引ORGANIZATION_ID
和department_id
和另一個作為組合ORGANIZATION_ID and department_id
。 還有其他方法可以改善它嗎?或者我可以用此數量的數據實現最大數量?
這是清單:
1)確保日志表( ANALYSIS
)使用MyISAM
引擎(對於OLAP查詢來說這是快速的)。
2)確保您已為ANALYSIS.REVIEW_DATE
字段建立索引。
3)確保ANALYSIS.REVIEW_DATE
是DATE
類型(不是CHAR
, VARCHAR
)
4)變更查詢(重新安排查詢計划):
SELECT
ANALYSIS.DEPARTMENT_ID
,SCORE.ID
,SCORE.KPI_ SCORE.R_SCORE
,SCORE.FACTOR_SCORE
,SCORE.FACTOR_SCORE
,SCORE.FACTOR_SCORE
,SCORE.CREATED_DATE
,SCORE.UPDATED_DATE
FROM SCORE_INDICATOR SCORE
,AG_SENTIMENT ANALYSIS
WHERE
SCORE.TAG_ID = ANALYSIS.ID
AND
ANALYSIS.REVIEW_DATE >= '2016-05-02' AND ANALYSIS.REVIEW_DATE < '2016-05-03'
AND
ANALYSIS.ORGANIZATION_ID = 1
AND
ANALYSIS.DEPARTMENT_ID IN (1,2,3,4,5)
ORDER BY ANALYSIS.DEPARTMENT_ID;
我已經將順序和樣式更改為JOIN語法。 得分表似乎是分析表的主要標准的子級。 您的所有條件均基於合格的分析記錄。 現在,建立索引。 通過對列執行DATE()函數調用不會對優化器有所幫助。 因此,為了獲取所有可能的日期/時間組成部分,我已從> =轉換為第一個日期,到結束后不到一天。 在您的示例中,DATE('2017-05-02')與LESS相同,而'2017-05-03'則包含2017-05-02到23:59:59,並且可以更好地應用日期。
現在為索引。 根據字段進行連接和排序的復合索引可能會有所幫助
AG_Segment表...索引打開(Organization_ID,Department_ID,Review_Date,ID)
SELECT
ANALYSIS.DEPARTMENT_ID,
SCORE.ID,
SCORE.KPI_ SCORE.R_SCORE,
SCORE.FACTOR_SCORE,
SCORE.FACTOR_SCORE,
SCORE.FACTOR_SCORE,
SCORE.CREATED_DATE,
SCORE.UPDATED_DATE
FROM
AG_SENTIMENT ANALYSIS
JOIN SCORE_INDICATOR SCORE
ON ANALYSIS.ID = SCORE.TAG_ID
where
ANALYSIS.ORGANIZATION_ID = 1
AND ANALYSIS.DEPARTMENT_ID IN (1,2,3,4,5)
AND ANALYSIS.REVIEW_DATE >= '2016-05-02'
AND ANALYSIS.REVIEW_DATE < '2017-05-03'
ORDER BY
ANALYSIS.DEPARTMENT_ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.