Vložte jej do databáze, ale BLOB
datový typ to pravděpodobně nevyřeže. MEDIUMBLOB
je normálně dostačující.
BLOB, TEXT L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT L + 4 bytes, where L < 232
Použil jsem to několikrát s velmi dobrými výsledky. Nezapomeňte uložit také velikost souboru, protože to usnadňuje jeho načtení. Nejsem si jistý, jestli to platí pro C# stejně jako pro PHP.
Při použití připravených příkazů s parametry budou data automaticky escapována AFAIK.
Také nevidím žádný skutečný důvod, proč by se samotná databáze při ukládání tohoto typu dat zpomalila. Hlavním úzkým hrdlem bude samozřejmě přenos dat. Také MySQL je někdy omezující, pokud jde o maximální délku dotazů a zejména odpovědí.
Jakmile to máte spuštěné, je to docela úhledné, zvláště když pracujete se spoustou malých souborů. Pro malý počet velkých souborů tento přístup nedává smysl, pro řešení přesunutých/smazaných souborů je lepší použít nějaký záložní systém.