为了开发便捷度,取消了帖数统计。
以前每次发帖、回复、删除等操作,都会更新统计表。
这样维护麻烦,且若统计错误,会造成分页异常。
最关键的问题,举例来说:
用户C删号,那么要更新他回复过的所有帖子,让它们回复数-1。
如果C有上百万条回复,会产生几百万条子查询,导致系统崩溃。
目前版本直接使用窗口函数 COUNT(*) OVER 做统计。
缺点是不再有回复数量统计,小论坛也没啥用。
优点是实时统计精准无差错,程序逻辑更简单。
分页统计时已经做全量扫描,后续OFFSET也不再需要二次扫描。
页数较大的情况下,实际性能差别并不大,页数较小时也有查询缓存。
性能损耗是不大的,数据量也没到做优化的程度,目前先以开发便利为主。