Один из способов сделать управляемым каталог с огромным количеством файлов в нем - это отсортировать файлы по подкаталогам, названным по прогрессивным символам в именах файлов.
Например.:
- a8debcdcf0d2302ccde5a43bb1fb385e81098342.jpg - 91ff48de8cfc6468bdc2115cf87cfb6547eee713.jpg - 99d002e2065cdf02bd6d04bf29a8230564719b76.jpg ...
Вышеупомянутые файлы сортируются по подкаталогам аналогично этому:
- a/ - 8/ - a8debcdcf0d2302ccde5a43bb1fb385e81098342.jpg - 9/ - 1/ - 91ff48de8cfc6468bdc2115cf87cfb6547eee713.jpg - 9/ - 99d002e2065cdf02bd6d04bf29a8230564719b76.jpg
Есть несколько вариантов этого метода, например, использование разного количества символов для именования подкаталогов или использование хэша или другого алгоритма для определения пути к каждому файлу.
Есть ли официальное название у этого метода организации файлов?
Я всегда называл это хеш-фрагментом.
При работе с подобными структурами следует помнить о нескольких вещах:
Кажется, это просто называется «хешированная структура каталогов», например, в http://michaelandrews.typepad.com/the_technical_times/2009/10/creating-a-hashed-directory-structure.html :
Как можно хранить большое количество файлов, сохраняя при этом высокую производительность при доступе? Одно из решений - хеширование имени файла.
Это называется B-дерево (не относится к бинарному дереву).