繁体   English   中英

图和MYSQL数据库在Facebook之间的区别?

[英]differences between graphs and MYSQL database in facebook?

我不明白facebook在哪里真正使用mysql:

所有数据库都可以看作是一个图形:

Account - Like -> Comment
Account <- friend -> Account2
Account - Like -> Link

以及MySQL中存储了什么?

帖子和注释的文字?

facebook在其图形数据库中是否具有所有这些实体(帐户,发布,评论)?

好吧,我假设您提到的所有内容都存储在MySQL中。 每条可能更改的数据,包括:

  • 用户数
  • 帖子
  • 评论
  • 有关上载图片的信息(但不包含图片本身)
  • 喜欢
  • 有关用户登录的数据
  • 广告
  • 有关用户喜欢/不喜欢广告的数据
  • 用户设置

等等

任何可能更改的数据都需要保存在数据库中,以进行索引和快速访问。 如果您只想写入数据(例如日志记录),则文件系统很好。 或者,如果您只需要一次访问全部数据,而不必访问部分数据。

但是,如果您需要对数据进行结构化并准备好快速访问它们,则需要使用数据库。 您可能需要阅读有关二叉树的信息: http : //en.wikipedia.org/wiki/Binary_tree

关于Facebook:如果我不得不猜测,我会说可能还有数百个数据库。 我没有访问他们的服务器的权限,所以我不能对此发表评论:)但是,作为另一个示例,如果您安装WordPress,则它将创建11个不同的表。 http://codex.wordpress.org/Database_Description

PS。 不过,没有理由Facebook应该使用MySQL。 有很多不同的数据库。

编辑感谢您指出我误解了您的问题。

让我们以这种情况为例:帐户<-朋友->帐户2

如前所述,它们具有类似于“用户”的表。

用户表将具有以下列:

  • ID(它具有PRIMARY KEY。这是为每一行提供唯一的ID。)
  • 用户名(一定长度的文本字段,例如64个字符)
  • ...还有很多...

现在将有表“ Friends”。 它将具有以下字段:

  • ID(再次输入主键)
  • 人1
  • 人2

字段Person1和Person2都是指向表“ users”中ID的整数。

因此,如果表用户具有三行:

ID  Username
1   rodi
2   rauni
3   superman

然后,表“ Friends”将例如:

ID Person1 Person2
1  1       2
2  2       1
3  1       3
4  3       1

在这里,第1行表示“罗迪是rauni的朋友”,第2行表示“ rauni是rodi的朋友”。 这是多余的,但我想保持示例简单。

这是一个很好的教程: http : //www.tizag.com/mysqlTutorial/mysqltables.php那里有很多页面,只需单击“下一步”跳过您已经知道的内容(我不知道您已经知道多少)

这是关于从两个表中加入信息: http : //www.tizag.com/mysqlTutorial/mysqljoins.php

您可以使用它在一个查询中从我们的两个表中选择所有rodi的朋友。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM