0

I was wondering how facebook stores comments with IDs since there must be like a really high number of comments and messages in general, so I inspected the source and noticed that comments' IDs have two numbers, for example 530409847013982_5029288. Can somebody explain how that works? I mean how are they being picked up and how are they being inserted, I'm not sure auto increment works this way?

4

2 回答 2

1

正如另一个答案所解释的那样,这些 ID 是分层的。这可能是某种复合键。要“说 MySQL” UNIQUE(page_id, post_id)。回到你的问题:

肯定有很多评论和消息

大数字!但是,根据MySQL 文档BIGINT UNSIGNED(或几乎等效的SERIAL类型)可以保存从 0 到 18446744073709551615 的值。根据您的示例,粗略地说,仍然有“空间”容纳大约10000 倍的消息。

如果这还不够,数据库通常会提供一个定点类型 ( DECIMAL)。对于 MySQL,这种类型最多可以容纳 65个以10 为基数的数字。显然还有一些空间!

关于键,MySQL 使用 InnoDB 表将这些限制为3072 个字节(作为参考,BIGINT需要 8 个字节)。对于那种应用程序来说已经足够了。

如果Facebook 使用 MySQL,我认为 ID/密钥长度不是主要问题。我不确定他们使用 MySQL 的想法?:D

于 2013-08-11T12:47:48.600 回答
1

下划线之前的部分是页面 id。后面的部分是帖子ID。

https://www.facebook.com/pageid/posts/postid

于 2013-08-11T10:57:28.027 回答