MySQL的。需要计算约9000个类别中的帖子数量

时间:2012-03-13 21:33:07

标签: php mysql optimization count

我正在制作一个站点地图。我有一个表,它将帖子与类别连接起来(2列:categoryId,postId)。总共有近9000个类别,我想计算每个类别中的帖子数量来预测分页的页数。我尝试为每个类别做9000 COUNT(*),但这太慢了(实际上是2小时)。我能做什么?感谢。

3 个答案:

答案 0 :(得分:2)

使用GROUP BY功能

SELECT C, COUNT(*)
FROM TABLE
GROUP BY categoryId as C

答案 1 :(得分:1)

你必须按照这样的类别ID进行SELECT COUNT和GROUP:

SELECT C, COUNT(*) FROM yourtable GROUP BY categoryId as C

如果您只想要特定类别,请尝试使用WHERE categoryID = ?
GROUP BY

之前

答案 2 :(得分:0)

您可以将其计数并按类别ID

进行分组
select Count(postid) as NumberOfPosts, categoryid from your_table group by categoryid

这很简单。

最佳解决方案是创建一个表格,您可以在其中保存真实统计信息并在创建帖子时增加它,或在删除帖子时减少它。

如果您想要某个类别,那么只需添加到查询categoryid=?

所以你的查询应该是

select Count(postid) as NumberOfPosts from your_table where categoryid=?

或者如果你想搜索多个类别,而不仅仅是这样做

select Count(postid) as NumberOfPosts, categoryid from your_table where categoryid in (1,2,3,4)
group by categoryid