Как я понял-вариант-всё держать в одной папке при большом количестве файлов, будет работать очень медленно. Или это не так?
Так.
большим количеством файлов
это сколько?
Как вариант, можно решить в рамках обычной ФС, но раскладывать файлы по нескольким папкам.
Например взять MD5 от имени файла, некоторое количество символов от конца хеша и положить файл в подпапку с таким названием.
Если взять 1 символ все файлы будут распределены по 16-ти папкам (если брать от hex-представления хэша)
Если 2 - по 256.
И т. д.
Если это по каким-то причинам не устраивает, то надо смотреть в сторону распределенных файловых систем