Come conservare le immagini nel tuo filesystem

Attualmente, ho immagini (massimo 6 MB) memorizzate come BLOB in una tabella InnoDB. Con l’aumentare delle dimensioni dei dati, il backup notturno sta rallentando e rallentando le normali prestazioni.

Quindi, i dati binari devono andare nel file system. (i puntatori ai file verranno mantenuti nel DB.)

I dati hanno una relazione ad albero:

- main site - user_0 - album_0 - album_1 - album_n - user_1 - user_n etc... 

Ora voglio che i dati vengano distribuiti in modo uniforms attraverso la struttura delle directory. Come dovrei realizzare questo?

Immagino di poter provare MD5('userId, albumId, imageId'); e taglia la stringa risultante per ottenere il mio percorso di directory:

   /var/imageStorage/f/347e/013b/c042/51cf/985f7ad0daa987d.jpeg

Ciò mi consentirebbe di mappare il primo carattere su un server e distribuire uniformsmente la struttura delle directory su più server.

Ciò tuttavia non manterrebbe le immagini organizzate per utente, probabilmente diffondendo le immagini per 1 album su più server.

La mia domanda è:
Qual è il modo migliore per archiviare i dati dell’immagine nel file system in modo bilanciato, mantenendo insieme i dati utente / album?

Sto pensando nella giusta direzione? o è questo il modo sbagliato di fare le cose del tutto?

Aggiornare:
Vado per l’affettatura md5(user_id) per la divisione al massimo livello. E poi metti tutti i dati utente nello stesso bucket. Ciò garantirà una distribuzione uniforms dei dati mantenendo al contempo i dati dell’utente memorizzati insieme.

   / var
    - imageStorage
      - f / 347e / 013b
        - f347e013bc04251cf985f7ad0daa987d
          - 0
            - album1_10
              - picture_1.jpeg
          - 1
            - album1_1
              - picture_2.jpeg
              - picture_3.jpeg
            - album1_11
              - picture_n.jpeg
          - n
            - album1_n

Penso che userò albumId diviso da dietro (mi piace l’idea!) Per mantenere il numero di album per directory più piccolo (anche se non sarà necessario per la maggior parte degli utenti).

Grazie!