Хорошая практика по оптимальному перераспределению файлов в папках

У меня есть несколько файлов с номерами в качестве имен, которые я хочу поместить в папки оптимизированным способом, например, примерно одинаковое количество файлов в папке и др.

Будет ли хорошей практикой выбирать папку после модуля числа? Является ли модуль таким же дорогим, как деление? Сколько инструкций это займет?

Чтобы быть более точным, я хотел бы использовать модуль оценочного числа квадратного корня файлов.

Number of files > 5'000'000

1 ответ

Решение

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

Даже если бы вы использовали криптографический хеш (НЕ рекомендуется), затраты тривиальны по сравнению с тем, что файловая система должна сделать для создания файла. Модуль в порядке.

Но вы также можете подумать о людях. Как они (вы) найдут файл? Делить на диапазоны гораздо проще в управлении. Затем вы можете присвоить каждому каталогу имя в начале диапазона, и найти правильный каталог будет просто.

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

Другие вопросы по тегам