structure de répertoire idéal pour les applications Web
-
27-09-2019 - |
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.
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.