Umieść go w bazie danych, ale BLOB
typ danych prawdopodobnie go nie wytnie. MEDIUMBLOB
zwykle wystarcza.
BLOB, TEXT L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT L + 4 bytes, where L < 232
Używałem tego kilka razy z bardzo dobrymi wynikami. Pamiętaj, aby zapisać również rozmiar pliku, ponieważ ułatwia to jego odzyskanie. Nie jestem pewien, czy odnosi się to do C#, tak jak do PHP.
W przypadku korzystania z przygotowanych wyciągów z parametrami dane zostaną automatycznie zastąpione AFAIK.
Nie widzę też prawdziwego powodu, dla którego sama baza danych zwalniałaby podczas przechowywania w niej tego typu danych. Głównym wąskim gardłem będzie oczywiście transfer danych. Również MySQL czasami ogranicza maksymalną długość zapytań, a w szczególności odpowiedzi.
Gdy już go uruchomisz, jest całkiem zgrabny, zwłaszcza gdy masz do czynienia z wieloma małymi plikami. W przypadku małej liczby dużych plików takie podejście nie ma sensu, lepiej użyj jakiegoś systemu kopii zapasowych, aby poradzić sobie z przeniesionymi/usuniętymi plikami.