我正在用 php 创建一个论坛(为了好玩),我也想显示每个论坛的帖子和主题数量。是否最好在数据库中的论坛中添加一列,显示线程/主题的数量,并且每当有人创建/删除主题时,它都会更新,或者每次加载论坛页面时计算主题/线程的数量?在这种情况下,常见的做法是什么?
计算记录是唯一可靠的方法;如果您存储计数,那么您将需要解决并发问题;给数据库一个机会,只有在它成为真正的问题时才修复它。我的经验是 COUNT(*) 可以快得惊人。
我有一个包含 120 万条记录的表(并且它有正确的索引);刚刚尝试select count(*) from table_name where field=11;需要 0.02 秒并返回 104,统计 500k 记录需要 0.15 秒。这是在规格相当低的 VPS 上使用 mysql。
关键是进行一些性能测试,并且仅在存在真正的性能问题时才从最简单、最可靠的解决方案进行优化。