Не будет ли у меня проблем с сохранением потенциальных около 10 миллионов результатов в отдельных файлах в одном каталоге?
Да. Вероятно, есть и другие причины, но я могу написать о них с головы до головы:
tune2fs
имеет опцию с названием, dir_index
которая обычно включена по умолчанию (в Ubuntu это так), которая позволяет хранить примерно 100 тыс. файлов в каталоге, прежде чем вы увидите снижение производительности. Это даже не близко к 10м файлам, о которых вы думаете.
ext
файловые системы имеют фиксированное максимальное число inode. Каждый файл и каталог использует 1 индекс. Используйте df -i
для просмотра ваших разделов и inode бесплатно. Когда у вас заканчиваются inode, вы не можете создавать новые файлы или папки.
Такие команды, как rm
и ls
при использовании подстановочных знаков, расширяют команду и в итоге получат «список аргументов слишком длинный». Вам придется использовать, find
чтобы удалить или перечислить файлы. И find
имеет тенденцию быть медленным.
Или целесообразно разбить их на папки?
Да. Вероятнее всего. В принципе, вы не можете даже хранить 10м файлов в 1 каталоге.
Я бы использовал базу данных. Если вы хотите кэшировать его для веб-сайта, взгляните на « solr » («обеспечение распределенного индексирования, репликации и запросов с балансировкой нагрузки»).