Question

Je suis sur le point de créer un site Web basé sur l'utilisateur et devra photo magasin, docs et d'autres données pour chaque utilisateur.

Si je prends un nombre ridicule comme 1 000 000 000 utilisateurs, je crois que un dossier avec 1 000 000 000 ne sera pas la chose la plus rapide dans le monde! Donc, je pensais à créer quelque chose comme

1er niveau: [a-z] 2ème niveau: [a-z] 3ème niveau: [a-z]

sera ainsi tous bobby dans / b / o / b / par

Mais cela signifie aussi qu'il ne sera pas réparti equaly, car il y aura très peu utilisateur en commençant par un z et beaucoup d'autres avec un m, s, l ...

donc je pensais à l'aide d'un ID utilisateur tels que "000000000001", "000000000001" etc ...

1er niveau: [000-999] 2ème niveau: [000-999] 3ème niveau: [000-999]

donc les données de l'utilisateur 000000000001 seront stockées dans / données / 000/000/000/001 alors je serai sûr d'avoir un dossier maximum de 1000 dans chaque niveau.

Qu'est-ce que vous en pensez à ce sujet, ce que je dois faire ou ne pas faire?

Le serveur sera en cours d'exécution CentOS 5.4 avec EXT3 sur RAID 1, si l'E / S get est trop mauvais Je vais probablement aller pour un raid 10.

Était-ce utile?

La solution

Une fonction de hachage fournit un moyen pour distribuer de grandes quantités de données dans une structure facile à consulter.

Voir cette question connexe: Pourquoi utiliser hash pour créer des noms de fichiers de grandes collections de fichiers

Et aussi essayer de regarder à travers les résultats de Google pour Répertoire Hashage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top