你会发现这是一个不合理的方案,不过还是给你提供操作步骤:
1、定义数据库字段为varbinary(max);
2、在代码中将视频文件转换为文件流,通过ado.net等方式存入数据库:
insert into xxx values(@videoStream)
然后对@videoStream赋值。
为什么要直接存储?如果视频大的话,你感觉数据库会很快么?
领导要求这么做,说是为了方便管理,提议存放路径方式,他说不安全之类的,非要实现数据库管理视频文件。
@Good_good: 你是专业的,领导算个P,那你问问他,怎么算不安全?怎么算安全?
存2进制流,奉劝最好别这样做.不过mongodb和信的sqlserver都有文件表.可以用来存放文件
视频为非结构化数据,传统的关系型数据库只是针对结构化数据设计的,在此方面表现不佳。虽然可以采用NoSQL数据库,但是现有的NoSQL数据的存储单元让是针对小块存储设计的,最好还是使用文件系统。
楼上的人都不明白楼主的良苦用心,他一共就两条数据,每个视频10秒钟,就自个儿玩用的。
根本没有打算能做啥事来着。
领导要求做一个对视频的管理封装,非要放在数据库当中,视频数据还是挺多挺大的~
@Good_good: 对付这种领导其实很容易的。
假设你们目前的硬件预算是10万的话,你就说需要500万的硬件预算,要全部采用高速内存,高速SSD硬盘。
配置类似:
XEON 8核CPU * 8个
SSD 高性能硬盘 RAID 10 计算一下你们需要的容量,你可以查一下京东上的普通SSD硬盘价格
128G 高性能ECC内存
....
想起来以前一个人,打算买台服务器,给她推荐SAS硬盘,结果她一看,容量又小,价格又贵,还是买了SATA硬盘,份量足(500G),名字还长,看起来赏心悦目啊。