MySQL通知:在vs单独的表中选择?

MySQL通知:在vs单独的表中选择?,mysql,Mysql,我正在构建一个带有通知功能的SQL数据库,用户可以从他们订阅的其他用户那里获得通知。我的问题是,更好的做法是什么:没有通知表并通过SELECT IN(sub1、sub2、sub3、sub4、sub5+)来完成,还是有一个通知表为每个订阅者插入新行 我担心这一点,因为如果订阅者数量太多(比如说,100个订阅者),使用SELECT IN会减慢选择过程,同时,每次用户发布更新时存储100个不同的行似乎很容易淹没服务器 那么,你个人会选择什么?总体而言,“更好”的做法是什么?我建议您使用单独的表和内部连

我正在构建一个带有通知功能的SQL数据库,用户可以从他们订阅的其他用户那里获得通知。我的问题是,更好的做法是什么:没有通知表并通过SELECT IN(sub1、sub2、sub3、sub4、sub5+)来完成,还是有一个通知表为每个订阅者插入新行

我担心这一点,因为如果订阅者数量太多(比如说,100个订阅者),使用SELECT IN会减慢选择过程,同时,每次用户发布更新时存储100个不同的行似乎很容易淹没服务器


那么,你个人会选择什么?总体而言,“更好”的做法是什么?

我建议您使用单独的表和内部连接来获得所需的所有交点。我相信,这是一个快速而灵活的解决方案。

我不认为服务器部分的泛滥有什么关系,因为在这两种情况下都必须了解订户的信息。MySQL可以比你想象的更好地优化
中的WHERE IN
,但是如果你有一个很长的列表,那么是的,我可能会使用一个单独的表,对它进行索引,然后加入。这很重要,因为想象一下:有一千多订户的人发布更新。如果使用SELECT IN,那么它只是一个表中的一行。如果使用了另一个表,那么在单独的表中会有一千零一行,下次发布更新时还会有一千零一行。同时,MySQL可能需要使用上千个不同的值进行选择,这些值可能需要获取才能启动。这正是我所担心的。我对您的问题不太了解,无法进一步评论。如果没有单独的通知表,那么您将如何存储给定用户需要通知的事实?@Shadow,更新将显示在主页上并放在顶部,因为它是按时间排序的。