我想提高通知板的速度。它从event
表中检索数据。此时events
MySQL 表看起来像这样
id | event_type | who_added_id | date
在event
表中,我存储了一行,其中包含有关特定事件的信息。每次用户 A 请求新的通知时,查询都会遍历表并查看用户 B 添加的通知是否适合他(他们必须是朋友,同一组的成员,以前聊天过)。表events
变大了,因为查询量很大,页面加载速度很慢。我正在考虑完全改变这种设计,而不是添加一个事件行然后比较用户的事件是否适合,而是添加与感兴趣的用户一样多的行。我会改变表events
结构如下:
id | event_type | who_added_id | forwho_id | date
现在,如果用户 B 创建了一个让其他 50 名成员感兴趣的事件,我创建了 50 行具有相同信息的行,并且在“forwho_id”字段中我提到了必须收到此通知的那 50 名成员。我认为查询将变得更加简单,并且搜索它所需的时间会更少。您如何看待: 1. 这是存储此类数据的好方法还是我们应该不惜一切代价避免重复数据?events
2.如果感兴趣的用户数量不是 50 而是数百,您认为该表会如何表现?
感谢您阅读本文,我希望我能理解自己。