mysql – COUNT(*)vs手动跟踪计数器?

我有一张大约一张桌子. 70000个条目.它包含有关商品的品牌,型号和类别的信息.用户可以使用它们的任意组合来查询它们,并且必须根据他的选择更新所显示的符合标准的商品的计数器.

我使用像这样的查询完成它

SELECT model,COUNT(*) AS count FROM table$model_where 
          GROUP BY model
          ORDER BY count DESC

其中$model_where取决于其他条件.但是我的老板让我重新使用一个特殊的计数器来重新调查这些查询,因为他认为他们正在减慢整个过程,但我提出的基准测试表明,样本输出:

代码采用:0 wallclock secs(0.02 usr 0.00 sys = 0.02 CPU)

它从一开始就测量整个例程,直到数据发送给用户,你可以看到它真的很快.

我已就此问题做了一些研究,但我还没有看到何时使用COUNT(*)vs counter table的明确答案.谁是对的?我不相信我们实际上需要手动跟踪这个,但也许我只是知之甚少.

最佳答案 根据您的具体情况,这可能是,也可能不是
premature optimization的情况.

如果下周你会有100倍大表,可能不是这样,但不然如此.

此外,您的老板应该考虑到您和其他所有人必须确保只要在计数记录上发生INSERT或DELETE时计数器就会更新.有一些框架可以自动执行(ruby on rails ActiveRecord),但是如果你没有使用其中一个,那么你可以在数据库中找到错误的计数器.

点赞