我有以下的MySQL查詢。如何使用SUM優化MySQL查詢(條件)
SELECT user_id
SUM(reached = 'Y') AS reached_count,
SUM(reached = 'N') AS not_reached_count
FROM goals
GROUP BY user_id
在表目標中,我有大約200萬條目。該查詢大約需要45秒才能執行。
沉重的部分似乎是SUM(reached = 'Y')
這是很長的。我COUNT(*)
這的確是更快相比,但Y和N之間沒有區別
編輯:reached
的類型是ENUM('Y','N')
+1這是如此明顯,我錯過了...如果他想要數據pivoted他可以做到這一點使用這作爲子查詢 – Stephan
已經嘗試過,但這個查詢是更慢某種程度上。我在這兩個領域創建了索引。 – Aley