簡體   English   中英

需要有關加快查詢的建議

[英]need advice on speeding up query

該查詢大約需要9秒鍾,並返回2條記錄。

SELECT

s.description, s.improvement,
s.first_name, s.last_name, s.finding, s.action, s.share, 
s.learned, s.timestamp, d.title as department_title, 
group_concat(DISTINCT g.title SEPARATOR " | ") as strategic_goals,
group_concat(DISTINCT m.statement SEPARATOR " | ") as mission_references,
group_concat(DISTINCT meas.statement SEPARATOR " | ") as measure_statement,
group_concat(DISTINCT o.statement SEPARATOR " | ") as outcome_statement,
group_concat(DISTINCT i.title SEPARATOR " | ") as ilo_title,
group_concat(DISTINCT cv.title SEPARATOR " | ") as core_value_title,
y1.year as current_year_title, y2.year as previous_year_title,
u.file_name as file_name

FROM summary s

LEFT JOIN year y1 ON s.current_year_id = y1.id
INNER JOIN year y2 ON s.previous_year_id = y2.id

INNER JOIN strategic_goal_entries sge ON s.id = sge.summary_id
INNER JOIN goal g ON sge.goal_id = g.id

INNER JOIN outcome o ON s.id = o.summary_id
LEFT JOIN measure meas ON o.id = meas.outcome_id

INNER JOIN department d ON s.department_id = d.id
LEFT JOIN uploads u ON s.id = u.summary_id 

INNER JOIN mission_entries me ON s.id = me.summary_id
LEFT JOIN mission m ON me.mission_id = m.id

LEFT JOIN ilo_entries ie ON s.id = ie.summary_id
LEFT JOIN ilo i ON ie.ilo_id = i.id

INNER JOIN core_value_entries cve ON s.id = cve.summary_id
INNER JOIN core_value cv ON cve.core_value_id = cv.id

INNER JOIN executive_of_department eod ON s.department_id = eod.department_id

WHERE eod.executive_id = 3

GROUP BY s.id

我添加了其余的主鍵。 查詢從9秒變為2秒。

然后,將引用其他表的主鍵的字段設置為索引字段。 查詢從2秒延長到20秒,我分配的索引過多嗎?

有什么方法可以加快速度?

1.設置索引等后,可以通過限制JOIN條件來加快速度。 例如,代替

LEFT JOIN uploads u ON s.id = u.summary_i

LEFT JOIN uploads u ON (s.id = u.summary_i AND s.id = 3)

連接所有表后,將評估WHERE子句。 盡可能地提高您的JOIN條件。


2.您是否嘗試SELECT * FROM myView WHERE myView.id = 3選擇中構造視圖並執行SELECT * FROM myView WHERE myView.id = 3

更新:閱讀此博客評論

暫無
暫無

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

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