什么更好,更新用户表上的notifications_count或通知表中的SELECT count(*)?

问题描述 投票:0回答:1

我正在我的rails应用程序内部创建一个通知系统,我想知道什么是更好的规模。

每次创建新通知时,我都可以为用户创建一个名为notifications_countUPDATE的列,并在每次查看通知时清除计数时UPDATE

我也可以在Notifications表上运行一个计数,并用user_id和一个标志unread过滤它。

通知将成为此应用程序的一大特色,即使对于个人用户,此表的大小也会非常快。

鉴于该表最终将包含大量数据,哪种方法最好?

还有另一种解决方案可以更好地扩展吗?

ruby-on-rails postgresql data-modeling
1个回答
1
投票

从关系建模的角度来看,使用带有计数的额外列将是多余的,因此很糟糕。

但是,它会使计数的查询速度更快,而且会以数据修改期间的额外工作为代价。

我会做出决定取决于计数与数据修改的查询的相对频率。如果对计数的查询将是您经常查询的一个,我会牺牲纯度来表现。

该决定主要与数据库大小无关。

© www.soinside.com 2019 - 2024. All rights reserved.