Ubuntu

單個 LAMP 堆棧伺服器上的 400 萬多張圖像

  • September 6, 2012

目前,我正在嘗試為文件和文件夾提出一個命名約定,本質上是一種將伺服器上的 400 萬多張圖像分散到各種目錄或其他任何目錄中的方法。

我想弄清楚的是我最好的方法。與其說是在需要時將我所有的圖像分成組,或者重命名它們以防止在路上發生碰撞,或者任何類似的情況,倒不如說是。我不是在尋找那部分的答案。我會想辦法以某種方式做到這一點。我試圖得到的答案是什麼是建構文件夾結構以將這些圖像分開的最佳方式,什麼是好的命名約定不僅可以重命名現在的文件,而且可以在將來命名它們。以及文件夾遵循的良好命名約定是什麼?

我只問這個,因為我的印像是使用一個單獨的文件夾,無論是在單個伺服器上還是跨越集群網格或云樣式(計劃中的網格,只是不在目前預算中)不是最好的方法,因為它會導致讀/寫時間的額外負載,以及查看文件是否存在然後及時提供它的任何內容。

我知道這似乎是一個廣泛的問題。但它最終是關於維護優化環境的命名約定和儲存約定。

通過命名約定,我將舉一個例子。Facebook,當您查看其圖像時,文件名類似於 GUID,但不完全是。但我知道在那個約定中也是一些邏輯。所以再次有點開放,因為最後我不知道我在這裡問什麼,或者即使我問對了,但我希望有人能引導我朝著正確的方向前進。

沒有任何。

  • 使用 GUILD 作為文件名。使用它們還可以形成文件夾結構(前 2 個字節,然後是 32 個字節等)。
  • 使用數據庫將名稱映射到 GUID。

然後您可以移動部分儲存(文件夾層次結構甚至不必是層次結構)並且重命名不花費任何成本(文件上的名稱保持不變)。您還可以輕鬆處理雙重名稱 - 它們根本不會發生在儲存方面。

最後,當你管理這麼多項目時,沒有人會一一查看。無論如何,您將開始擁有所有權、標籤等,而這需要一個數據庫。然後真名很痛苦。擺脫它們,使用身份名稱(即只是說“這是項目引用編號 X 的名稱),這是 GUID 所做的。

引用自:https://serverfault.com/questions/424813