我使用MySQL(MyISAM數據)5.0.41和我有這個疑問:SQL計數多對多的值還是每次添加新行時都計數?
SELECT `x`.`items`.id, `x`.`items`.name, COUNT(*) AS count
FROM `x`.`items` INNER JOIN `x`.`user_items`
ON `x`.`items`.id = `x`.`user_items`.item_id
GROUP BY name HAVING count > 2 ORDER BY count DESC
我有36,000用戶175,000 user_items和不斷增加60,000項。所以這個查詢是有點慢......
是更好地:
- 有在
items
一個count
場和更新定期(比如每次用戶將商品) - 或運行這樣的查詢(緩慢)..
或者是否有任何SQL將填充計數字段爲我?
感謝
數據庫系統?版?你有什麼指數? – 2010-01-27 15:21:25
已編輯以顯示數據庫系統和版本。 – betamax 2010-01-27 15:31:28