Acho que a resposta correta aqui depende de como os arquivos serão indexados ... o que determina quando um determinado arquivo é selecionado para entrega.
Se você já está fazendo uma consulta ao banco de dados para determinar o nome do arquivo, pode muito bem achar melhor manter o arquivo ali mesmo no registro db, você pode encontrar os melhores resultados de ajustes em algumas configurações de paginação. seu banco de dados de escolha e, em seguida, armazenar os arquivos no banco de dados (ex: páginas maiores para contabilizar todos os registros blob), ou você pode achar que ainda é melhor usar o sistema de arquivos.
A opção de banco de dados tem uma chance um pouco maior de funcionar porque, com um milhão de registros, é provável que cada arquivo não tenha a mesma probabilidade de ser consultado. Se você estiver em uma situação em que um arquivo pode ser consultado várias vezes seguidas, ou quase em sequência, o banco de dados pode atuar como um cache de fato para arquivos recuperados recentemente; nesse caso, você geralmente terá o resultado do arquivo já carregado na memória. Talvez seja necessário ajustar cuidadosamente os componentes internos do seu mecanismo de banco de dados para obter o comportamento desejado.
Mas o principal a tirar da minha resposta é que você realmente não sabe o que funcionará melhor até que você experimente com alguns dados de teste representativos e meça os resultados.