2012-02-26 60 views
3

當我們上傳任何照片到Facebook時,它被重新命名爲Facebook。新名稱通常具有以下模式: 393268_10151029983750034_598680033_21778114_899520598_n.jpgFacebook照片重命名約定

該名稱可以用下劃線分成6部分。

  1. 我知道,在名稱中第二個數字是照片的FBID,您可以直接訪問該照片在F​​acebook的:https://www.facebook.com/photo.php?fbid=10151029983750034只要您有必要的權限。
  2. 第三個數字是照片上傳者的Facebook個人資料ID。你可以通過上傳的文件:https://www.facebook.com/profile.php?id=598680033

我有一個關於這個命名約定以下問題:

  1. 有誰知道還有什麼其他信息出現在照片中的名字嗎?照片名稱中存在照片所屬的分片/節點/存儲桶的信息?
  2. 這種命名約定有什麼優點/缺點?
+0

對不起,這是這類問題的錯誤論壇。也許你應該試試programmers.stackexchange.com。 Stackoverflow通常用於與你寫的代碼有關的問題等。 – DMCS 2012-02-26 04:52:42

+0

是的。雖然這是一個有趣的問題! – jmk2142 2012-06-21 23:19:19

回答

0

它防止命名衝突並且可以更容易進行內部管理。 我認爲沒有缺點。這只是很多清潔

2

最後一塊_n是圖像大小。 你可以嘗試用_s去改變它,你會看到縮略圖來代替,_b作品,以及,沒有嘗試其他

2

我真的不知道他們究竟是如何處理這個命名方案,但我懷疑它與他們的存儲有關。

Facebook使用名爲RocksDB的數據庫,位於MySQL分支(專門爲此數據庫創建)之上,名爲MyRocks。

他們直到2012年才使用MySQL,但之後因爲「獨特需求」而轉換爲無SQL類型。

RocksDB只能存儲鍵值對,然後必須對數據結構進行調整,因此,如果您不能在表格中擁有用戶的ID,並且在其他用戶中擁有該用戶的照片,則可以通過規範化綁定,在這種情況下,優先考慮速度超過存儲大小。

這樣一個系統的好處是速度,因爲您通過事先計算您想要查詢的每條數據的確切名稱來節省傳統連接的開銷。