我使用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