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