gpt4 book ai didi

PHP/MySQL 事件(ala facebook)

转载 作者:可可西里 更新时间:2023-11-01 07:57:46 24 4
gpt4 key购买 nike

这可能是一个毛茸茸的问题,但是。说我有

Followers:
-user_id
-follower_id

Activities:
-id
-user_id
-activity_type
-node_id

提取用户事件相当容易。但是获得关注者事件的最佳方式是什么?子选择?随着用户获得越来越多的关注者,它似乎非常慢。有什么想法可以加快速度吗?

此外,在更概念的层面上。分组是如何工作的。这一切都是通过一个查询完成的吗?还是所有的事件数据都被拉进来,然后在 PHP 端进行排序和分组?

用户 X、Y 和 Z 进行了事件 A用户 J 做了 3 个事件 B

最佳答案

子选择通常比 JOIN 慢,但这实际上取决于您使用它们做什么。为了回答您的主要问题,我将通过 JOIN 获取关注者数据:

SELECT * FROM followers f
LEFT JOIN activities a ON f.follower_id=a.user_id
WHERE f.user_id=$followedPerson

这是假设关注者表代表一个具有 user_id 的用户,而正在关注他们的人的 follower_id 恰好是一个 user_id 也在用户表中。

只要您在 followers.user_id 上有索引,它就永远不会令人难以置信慢。但是,此类查询可能返回的数据量可能会比您真正想要处理的要大。您需要确定您的应用程序要显示的事件类型,并尝试相应地对其进行过滤,这样您就不会一直进行大量查询,而只会使用返回结果的一小部分。

提取数据并在 PHP 端对其进行分组很好,但是如果您可以避免首先选择它,那么您的情况会更好。在这种情况下,假设日期存在,我可能会添加一个 ORDER BY f.follower_id,activity_date DESC,并尝试为事件表提出更多过滤条件。然后我将遍历 PHP 中的行,输出按关注者分组的数据。

关于PHP/MySQL 事件(ala facebook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com