Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有一个 MySQL 狗表 t_dogs,其中包含所有者姓名、品种、体重、年龄等列。如果我知道某些计数查询会经常执行,例如某个所有者的狗总数或年龄,我应该使用COUNT(*) FROM ... WHERE ... 还是应该创建一个单独的表来按所有者、年龄等跟踪狗的总数?
COUNT(*) FROM ... WHERE ...
与查询总数的次数相比,所有者更新狗总数、年龄的次数最少。
谢谢!
创建一个单独的表是非规范化的设计,但如果不这样做会显着影响性能,它可能是合理的。如果您确实选择这样做,那么保持元数据表正确更新就成为您的工作,这是一个额外的负担和一系列可能出错的事情。
对于 MySQL,使用什么存储引擎很重要。InnoDB 在 COUNT(*) 查询 IIRC 中表现不佳。对于 MyISAM 来说,这并不重要。