php – SQL:保持行数或从数据库中选择计数

例如:我有2张桌子
分类
– 帖子

这是一个很好的方法来保持这样的类别的邮政编号

类别

 id |  title   | posts
----+----------+--------
 1  | golf     |  50
----+----------+-------
 2  | soccer   |  90
----+----------+-------

帖子

 id |  title   | category_id
----+----------+--------------
 1  | news 1   |  1
----+----------+--------------
 2  | news 2   |  2
----+----------+--------------
 3  | news 3   |  1
----+----------+--------------

或者我在这样的查询中使用select count()

SELECT c.id,
       c.title,
       count(p.id)
FROM `categories` c
INNER JOIN `posts` p ON c.id=p.category_id
GROUP BY c.id

但问题是当我在类别表中保持计数时,我必须更新类别表中的帖子字段.在小型项目中没有问题,但对于大型项目来说,处理数量的好方法是什么,因为我担心数据库性能

谢谢你的所有答案

解决方法:

我个人的偏好是不要在任何表格中保留重复数据,直到证明有必要为止.如果您反对编写JOIN查询,则可以定义包含查询的视图,然后您可以忘记它.

我在过去发现,正确的索引通常意味着没有太多的性能问题.

如果您发现有必要将计数摘要保留为类别表(出于性能或其他原因),请考虑在posts表上创建INSERT,UPDATE和DELETE触发器,以便可以由数据库完成更新,而不是依赖于应用程序程序员记住要做什么.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...