Идеальная структура каталогов для веб-приложения - PullRequest
1 голос
/ 16 апреля 2010

Я собираюсь создать пользовательский веб-сайт и должен будет хранить фотографии, документы и другие данные для каждого пользователя.

Если я возьму глупое число, такое как 1 000 000 000 пользователей, я считаю, что одна папка с 1 000 000 000 не будет самой быстрой вещью в мире! Поэтому я думал о создании чего-то вроде

1-й уровень: [a-z] 2-й уровень: [a-z] 3-й уровень: [a-z]

Поэтому Бобби будет в / б / о / б /

Но это также означает, что он не будет распространяться равномерно, потому что будет очень мало пользователей, начинающих с z, и еще больше с m, s, l ...

так что я думал об использовании идентификатора пользователя такие как «000000000001», «000000000001» и т. д.

1-й уровень: [000-999] 2-й уровень: [000-999] 3-й уровень: [000-999]

поэтому данные пользователя 000000000001 будут храниться в / data / 000/000/000/001 тогда я обязательно буду иметь максимум 1000 папок на каждом уровне.

Что вы, ребята, думаете об этом, что я должен делать или не делать?

На сервере будет запущен Centos 5.4 с EXT3 на рейде 1, если ввод / вывод слишком плохой я, вероятно, пойду на рейд 10.

1 Ответ

0 голосов
/ 16 апреля 2010

Хеш-функция позволяет распределять большие объемы данных по легко доступной для поиска структуре.

См. Этот связанный вопрос: Зачем использовать хеширование для создания путей к большим коллекциям файлов?

А также попробуйте просмотреть результаты Google для Хеширование каталогов .

...