假设我们在mysql数据库中有一个“posts”表,顾名思义,它将用户的帖子存储在一些社交媒体平台上。现在我想显示每个用户创建的帖子数。一个可能的解决方案是: SELECT COUNT(*) FROM posts WHERE
……等等;
但至少对我来说,这看起来是一个昂贵的查询。在某个表中保存一个记录,比如使用一个名为(number of theu posts)的列(statistics),不是更好吗。我知道在最后一个场景中,一旦创建了一个post,我就必须更新两个表(post)和(statistics)。你认为最好的解决方法是什么?
1条答案
按热度按时间aiazj4mn1#
像这样的查询
如果在上创建索引,则可以执行索引扫描
user_id
列。读这个。索引扫描速度很快。所以你提出的问题很好。sql和mysql是为这种查询而设计的。还有,像
如果你有
user_id
索引。如果你有一张单独的table,你可以节省几十微秒,也可以不用。这些节省将很难衡量。但是,在服务器性能和软件维护复杂性方面,维护该表都会产生成本。对于刚刚学会使用数据库软件的人来说,对性能的直觉往往是非常悲观的。为了提高性能,数据库软件包有数千年的程序员工作经验。真的。而且,你自己的东西可能比不上他们。
mysql的开发者为什么要优化这种东西?所以使用mysql的开发人员可以依赖它来解决问题,而不必做很多额外的优化工作。他们是为你做的。花时间让应用程序的其他部分正常工作。