После поиска вокруг некоторое время относительно консенсуса в том, как обращаться с мультимедийным контентом для сайта (с использованием собственных FileSystem или базы данных BLOB), в основном здесь:Оптимизация структуры каталогов в файловой системе (ссылка через базу данных)
MySQL Binary Storage using BLOB VS OS File System: large files, large quantities, large problems
Я решил, что пойдет с сохранением непосредственно в файловой системе и установит ссылки на пути в базе данных. Я в основном разрабатываю веб-приложение, которое будет содержать множество изображений (в основном около 5MB
до 10MB
) и видео (в основном около 50MB
до 100MB
).
Может кто-нибудь посоветовать мне, что было бы самым лучшим способом организовать мои фотографии и видео в файловой системе. Популярное решение, о котором я узнал, состояло в том, чтобы хэшировать файлы в различные подкаталоги.
Не понимаю, почему мы начинаем использовать базовое имя файла с обратной стороны? Я попробовал группировать 2 символа имени файла (предположим, что это было сделано с обратной стороны), а затем создаем дерево иерархии каталогов. Я не мог определить разницу в любом случае по ширине или высоте дерева каталогов.
А также, поскольку потенциально огромное количество фотографий и видеороликов, какой должен быть мой приоритет, оптимизация высоты дерева каталогов или ширины дерева каталогов?
Скорость поиска в каталоге зависит от типа каталога и размера и кэширования каталогов. Размер (количество записей), поскольку при первом открытии файла каталог должен быть отсканирован. Поэтому, если вы можете ограничить количество каталогов и количество записей в каталоге, необходимых для первого поиска, который является выигрышем. Названия каталогов Hashed могут быть подходящими для этого. Повторные поиски должны найти информацию о кешированном каталоге. Чтобы сохранить время сканирования. В некоторых системах, таких как Solaris. это называется настройкой настройки кэша дескриптора каталогов и включает системные настройки. –
@jimmcnamara, так что я должен работать над созданием наилучшего решения для кэширования каталогов? так как кумулятивный размер всех каталогов не сильно под моим контролем – activatedgeek
Работайте над обоими. Простой пример: хэш с хорошей лавиной может позволить вам создать 100 каталогов. Хорошая лавина означает, что хеш-код будет распространять файл довольно равномерно по каталогам. Так.Хешируйте имя файла в десятичное число (или какую-то строку). Используйте первые два символа этого числа/строки в качестве имени каталога. Запишите файл в этот каталог. В некотором смысле я предполагаю, что вы используете свое приложение. По мере увеличения количества записей в каталоге время сканирования увеличивается. Я предполагаю, что вам дано правильное имя файла для поиска. –