Hash / B: Дерево
Преимущество хэша состоит в том, что он быстрее просматривается, когда вы собираетесь использовать для поиска только оператор "=".
Если вы собираетесь использовать такие вещи, как "<" или ">" или что-то еще, кроме "=", вы захотите использовать B: Tree, потому что он сможет выполнять такой поиск.
Структура каталогов
Если у вас есть сотни тысяч файлов для хранения в файловой системе, и вы поместите их все в один каталог, вы достигнете точки, когда индекс каталога будет настолько толстым, что для добавления / удаления потребуется несколько минут. файл из этого каталога, и вы можете даже добраться до точки, когда индекс не помещается в памяти, и вы не сможете добавить / удалить или даже коснуться каталога.
Вы можете быть уверены, что для метода хеширования foo foo ("что-то") всегда будет возвращать одно и то же, скажем, "grbezi". Теперь вы используете часть этого хеша для хранения файла, скажем, в gr / be / что-то. В следующий раз, когда вам понадобится этот файл, вам нужно будет просто вычислить хеш, и он будет доступен напрямую. Кроме того, вы получаете тот факт, что с хорошей хеш-функцией распределение хешей в хеш-пространстве довольно хорошее, и для большого количества файлов они будут равномерно распределены внутри иерархии, таким образом распределяя нагрузку.