Хорошая практика по оптимальному перераспределению файлов в папках
У меня есть несколько файлов с номерами в качестве имен, которые я хочу поместить в папки оптимизированным способом, например, примерно одинаковое количество файлов в папке и др.
Будет ли хорошей практикой выбирать папку после модуля числа? Является ли модуль таким же дорогим, как деление? Сколько инструкций это займет?
Чтобы быть более точным, я хотел бы использовать модуль оценочного числа квадратного корня файлов.
Number of files > 5'000'000
1 ответ
Вы можете использовать любое решение для хэширования с учетом обычных ограничений, наиболее важным из которых является то, что все значения хеш-функции одинаково вероятны. Модуль может быть полностью в порядке, если файлы пронумерованы последовательно.
Даже если бы вы использовали криптографический хеш (НЕ рекомендуется), затраты тривиальны по сравнению с тем, что файловая система должна сделать для создания файла. Модуль в порядке.
Но вы также можете подумать о людях. Как они (вы) найдут файл? Делить на диапазоны гораздо проще в управлении. Затем вы можете присвоить каждому каталогу имя в начале диапазона, и найти правильный каталог будет просто.
Когда вы используете числа в качестве имен файлов, вы в какой-то момент захотите, чтобы они были дополнены нулями до одинаковой длины, чтобы алфавитный и числовой порядок были одинаковыми. Я настоятельно рекомендую вам понять это с самого начала. Наиболее распространенный момент, чтобы заметить проблему, - это когда необходимо массовое получение резервных копий.