gpt4 book ai didi

php - 社交网络 facebook、myspace 等社交网络的用户操作

转载 作者:可可西里 更新时间:2023-11-01 08:38:26 27 4
gpt4 key购买 nike

我正在使用 PHP 开发一个社交网络类型的网站,我以前做过一次,但该网站的编码能力无法跟上,这是几年前的事了,现在我想再次处理这个项目。

基本上在我的网络上有一个 friend_friend mysql 表跟踪谁是谁的 friend ,对于每个确认的 friend ,数据库中有 2 个条目这是那个表:

    CREATE TABLE IF NOT EXISTS `friend_friend` (
`autoid` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(10) DEFAULT NULL,
`friendid` int(10) DEFAULT NULL,
`status` enum('1','0','3') NOT NULL DEFAULT '0',
`submit_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`alert_message` enum('yes','no') NOT NULL DEFAULT 'yes',
PRIMARY KEY (`autoid`),
KEY `userid` (`userid`),
KEY `friendid` (`friendid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1657259 ;

然后我有一个名为 friend_reg_user 的包含所有用户信息的用户表

然后是用户发布的公告表,目的是只显示与您为好友的用户的公告。这是公告表

CREATE TABLE IF NOT EXISTS `friend_bulletin` (

`auto_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(10) NOT NULL DEFAULT '0',
`bulletin` text NOT NULL,
`subject` varchar(255) NOT NULL DEFAULT '',
`color` varchar(6) NOT NULL DEFAULT '000000',
`submit_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`status` enum('Active','In Active') NOT NULL DEFAULT 'Active',
`spam` enum('0','1') NOT NULL DEFAULT '1',
PRIMARY KEY (`auto_id`),
KEY `user_id` (`user_id`),
KEY `submit_date` (`submit_date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=455144 ;

好吧,要做到这一点,我要么在 friend_friend 表上运行查询以获取用户的所有 friend ,并将他们添加到像这样的字符串 1,2,3,4,5,6 这些将是 friend ID 号然后从公告表中选择公告作者ID在我的好友ID列表中

第二种方法是使用 JOINS 一次获取所有这些数据。

我现在的追求终于来了,一旦网站变得非常大,当数据库中有数百万条好友记录和公告时,这一切都会变慢,我有什么办法可以加快速度?有一个更好的方法吗?此外,我正计划更改公告以包含更多内容,而不仅仅是公告,但会像现在的大型网站那样进行更多的用户操作,以便显示状态更新、博客和公告等所有内容

最佳答案

您想要做的事情可能有多种方式。您可以有一个汇总表,其中包含给定成员的所有关联数据(在本例中为 friend )。

这是一个非常基本的方法,但它可以变得更加复杂。

摘要汇总充当持久缓存机制。您必须通过某种方法(cron 作业、MapReduce 等)使其保持最新状态。您不想在每次需要时都计算所有数据——相反,定期计算它以便快速准备就绪。

Memcache 是一个很棒的缓存工具,但它缓存的数据无论如何都必须在某个时候计算。不幸的是,Memcache 不是持久的。这意味着如果 memcached 服务器或服务死亡,您的数据也会死亡。

您可以探索一些先进的尖端技术,例如 MongoDB、CouchDB、Project Voldemort 和 neo4j,以获得一些更高效的工具。

我还建议查看基于开源 PHP 的社交网络 Elgg 的源代码,网址为 http://www.elgg.org/

关于php - 社交网络 facebook、myspace 等社交网络的用户操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1167149/

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