我需要找到用戶數:如何讓sql更高效。只需要計數
- 誰擁有一個或多個風扇
- 誰擁有兩個風扇
- 誰擁有三個風扇
這裏是SQL我開發得到的答案#1
SELECT users.id, count(fans.id)
FROM users
JOIN fans on users.id = fans.user_id
GROUP BY users.id
HAVING COUNT(fans.id) > 0
上面的查詢工作,但我得到所有用戶記錄,然後我計算數組的大小。當用戶數量達到數千時,它的性能非常糟糕。我如何重構查詢,以便我只能得到用戶的數量?
我正在使用mysql,但我可能需要使用postgresql的另一個項目。
並非所有需要的信息都在表格「粉絲」中?我沒有看到加入「用戶」表的理由。如果您只有數千行的性能問題,請確保您的統計數據是最新的,並查看查詢的執行計劃。 –