COUNT(*)或单独的表用于跟踪总数?

时间:2013-09-05 18:46:53

标签: mysql database

假设我有一个狗狗桌子,t_dogs,包含所有者姓名,品种,体重,年龄等等。如果我知道有一些计数查询会经常执行,例如狗的总数某个所有者或年龄,我应该使用COUNT(*) FROM ... WHERE ...还是应该创建一个单独的表来跟踪所有者,年龄等的狗总数?

与查询总数的次数相比,所有者的狗总数更新次数最少。

谢谢!

1 个答案:

答案 0 :(得分:2)

创建一个单独的表是非规范化设计,但如果不这样做会显着影响性能,则可能是合理的。如果您确实选择这样做,那么保持正确更新元数据表就成了您的工作,这是一个额外的负担和一系列可能出错的事情。

对于MySQL,您使用的存储引擎很重要。使用COUNT(*)查询IIRC,InnoDB表现不佳。对于MyISAM而言,这并不重要。