Facebook照片重命名约定

时间:2012-02-26 03:35:10

标签: facebook security database-design

当我们将任何照片上传到Facebook时,它会被Facebook重命名。新名称通常具有以下模式: 393268_10151029983750034_598680033_21778114_899520598_n.jpg

此名称可以用下划线分为6个部分。

  1. 我知道名称中的第二个数字是照片的内容,您可以直接在Facebook上使用https://www.facebook.com/photo.php?fbid=10151029983750034访问照片,前提是您拥有必要的权限。
  2. 第三个数字是照片上传者的Facebook个人资料ID。您可以通过以下方式转到上传者的个人资料:https://www.facebook.com/profile.php?id=598680033
  3. 关于此命名约定,我有以下问题:

    1. 有谁知道照片名称中还有其他信息?照片名称中有关照片所属的分片/节点/桶的信息是什么?
    2. 这种命名惯例有哪些优点/缺点?

3 个答案:

答案 0 :(得分:2)

最后一块_n是图像尺寸。 您可以尝试使用_s更改它,然后您会看到缩略图,_b也能正常工作,不会尝试其他人

答案 1 :(得分:2)

我真的不知道他们究竟如何处理这个命名方案,但我怀疑它与他们的存储有关。

Facebook使用名为RocksDB的数据库,在MySQL fork(专门为此数据库创建)之上,称为MyRocks。

他们使用MySQL直到2012年,但由于他们的“独特需求”而转而使用No-SQL类型。

RocksDB只能存储键值对,然后必须对数据结构进行调整,因此,如果你不能在表中拥有用户的ID,而在其他用户中拥有属于该用户的照片,则可以绑定它们通过规范化,在这种情况下,优先考虑速度超过存储大小。

这样一个系统的优势在于速度,因为您可以通过事先计算要查询的每个数据的确切名称来节省传统连接的开销。

答案 2 :(得分:0)

它可以防止命名冲突,并且可以更容易进行内部管理。 我认为没有缺点。它只是更清洁