Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Разбиение изображений по подкаталогам, Не понял сути вещей
Forever  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 134
Пользователь №: 38784
На форуме: 2 года, 10 месяцев, 8 дней
Карма:




Сегодня прочел несколько статей о том, как нужно реализовывать хранение большого количества изображений на сервере. Ввиду того, что я новичок в веб-програмировании, то эти статьи не прояснили мне ситуацию, а наоборот, завели в еще большие дебри и навели на кучу новых вопросов. И вот на эти вопросы надеюсь получить ответы на этом форуме.

Наверное, для вас эти вопросы могут показаться абсурдными, поэтому я готов принять все летящие помидоры .

Так вот. Отрывок из одной статьи (ссылка на статью):

Цитата
Ошибка номер 3: сваливать все изображения в одну папку.

Почему и как быть? => Некоторые операционные системы (и Linux тоже) начинают сильно тормозить при доступе в папку, в которой хранится 100 тысяч файлов и более. Идеально, если в каждой папке будет не больше 1000 файлов.

Вот как можно поступить. Для уменьшения количества файлов в каждой папке необходимо делить их по разным подпапкам, в частности, если имя файла сгенерировано через MD5, то можно поступить следующим образом

/ f7 / 89 / f789abc898d6892df98d09a8f8.jpg

Вы видите, что первый уровень подпапки повторяет первые 2 символа имени файла, а второй — следующие два символа. Количество уровней при желании можно увеличивать.

Это гарантирует количество подпапок в каждой папке не более 256 штук, и статистически количество файлов в каждой конечной подпапке будет делиться на 65 тысяч. То есть, при количестве файлов 1 миллион в каждой подпапке окажется по 10-20 файлов. Три уровня вложенности делят это количество на 16 миллионов, чего должно хватить для любых нужд.


И вот чего я не понял:

1) Если в одной папке накопится более 1000 подпапок, то это равносильно наличию 1000 файлов в этой папке? И если да, то какой тогда смысл в подпапке для каждого файла?

2) / f7 / 89 / f789abc898d6892df98d09a8f8.jpg - зачем нужна промежуточная папка 89? Это ведь просто лишнее звено .

3) И вот тут совсем жесть для меня:
Цитата
f7 / 89 / f789abc898d6892df98d09a8f8.jpg - Это гарантирует количество подпапок в каждой папке не более 256 штук.
- почему?

Цитата
и статистически количество файлов в каждой конечной подпапке будет делиться на 65 тысяч.
- почему?

4)

К примеру, я делаю все простым способом без разбиения на подпапки:
создаю основную папку photos, в ней подпапки для каждого пользователя. В каждой подпапке сохраняю все фотографии этого пользователя. Вроде как
photos/user_1/img0.jpg
photos/user_1/img1.jpg
photos/user_1/img2.jpg

Или делаю, как написано выше:
photos/user_1/ha/sh/hash_izobrajeniya1.jpg
photos/user_1/ha/sh/hash_izobrajeniya1.jpg
photos/user_1/ha/sh/hash_izobrajeniya1.jpg

Объясните пожалуйста, чем эти два способа отличаются? Как наличие двух подпапок во втором случае дают все эти самые бонусы из статьи?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 299
Пользователь №: 40589
На форуме: 2 года, 5 дней
Карма: 20




листинг папок меньше времени будет занимать - меньше будет тормозить.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1755
Пользователь №: 20757
На форуме: 6 лет, 10 месяцев, 7 дней
Карма: 184




Цитата (Forever @ 9.03.2016 - 08:59)
зачем нужна промежуточная папка 89

Цитата (Forever @ 9.03.2016 - 08:59)
и статистически количество файлов в каждой конечной подпапке будет делиться на 65 тысяч.

Чтобы сократить количество файлов в каталоге. Т.е. при структуре хранилища
/ f7 / f789abc898d6892df98d09a8f8.jpg
в каждую папку будет попадать каждый 256-ой файл (256^1)
при
/ f7 / 89 / f789abc898d6892df98d09a8f8.jpg - каждый 65536-ой (256^2)
Цитата (Forever @ 9.03.2016 - 08:59)
3) И вот тут совсем жесть для меня:

Т.к каталогов может быть от 00 до ff (т.е. от 0x00 до 0xff, что в пересчете из шестнадцатеричной системы счисления в десятичную дает от 0 до 255)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса