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.

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top