struttura di directory Ideale per applicazioni web
-
27-09-2019 - |
Domanda
che sto per creare un sito web basato utente e dovrà memorizzare foto, documenti e altri dati per ogni utente.
Se prendo un certo numero di stupido come 1 000 000 000 utenti, credo di una cartella con 1 000 000 000 non sarà la cosa più veloce del mondo! Stavo pensando di creare qualcosa di simile
1 ° livello: [a-z] 2 ° livello: [a-z] 3 ° livello: [a-z]
Perciò bobby sarà a / b / o / b / da
Ma ciò significa anche che non sarà diffusione equaly, perché ci sarà molto pochi utente partire da una z e molti altri con un M, S, l ...
così stavo pensando di utilizzare un ID utente come ad esempio "000000000001", "000000000001", ecc ...
1 ° livello: [000-999] 2 ° livello: [000-999] 3 ° livello: [000-999]
dunque dati dell'utente 000000000001 sarà memorizzare nei dati / / 000/000/000/001 allora sarò sicuro di avere un massimo di cartelle 1000 in ogni livello.
Che ne pensate voi ragazzi a questo proposito, che cosa devo fare o non fare?
Il server sarà in esecuzione CentOS 5.4 con ext3 su RAID 1, se l'I / O get troppo male Io probabilmente andare a fare un raid 10.
Soluzione
Una funzione hash fornisce un modo per distribuire grandi quantità di dati attraverso una struttura facili da trovare.
Vai a questa domanda relativa: Perché usare hashing per creare percorsi per grandi collezioni di file?
E anche provare a guardare attraverso i risultati di Google per Directory hashing .