数据库-数据存储-非结构化数据的存储方式



数据库-数据存储-非结构化数据的存储方式。针对Oracle、MySQL、SQL Server、DB2等结构化数据,我们可以选择存储在关系型数据库中。针对诸如视频、音频、文件等非结构化数据,又是如何存储呢?一般视频、大文件都不会直接存储在数据库中,因为会严重影响性能。视频文件存放在数据库,应该使用大字段、IO流的知识。
Oracle中可通过BLOB类型来存储4GB以下的视频数据。【定义blob字段,使用dbms_lob包】

数据库自定义为字节数组类型(如:image等),用程序将视频转化为流,写入字段数据数组中,保存进数据库。

将视频文件所在的路径保存在数据库中,然后通过程序调用该路径的文件内容。【数据上传到磁盘空间里,数据库中存储路径】

视频、音频、文件等非结构化数据可存储在一些NoSQL解决方案中。
建议:图片-blob字段来存储,视频-存储路径
测试:如何把视频文件存放在mysql数据?

当然不建议直接存放,因为迁移会很麻烦而且容易出现问题,以下只是测试功能,导入jpg、png等图片类似。


创建一个测试表test,使用longblob或者mediumblob

CREATE TABLE test (id INTEGER NOT NULL PRIMARY KEY,name VARCHAR (20),movie LONGBLOB);

然后把视频文件导入

INSERT INTO test VALUES(1, ‘titanic’, LOAD_FILE(“/tmp/good.mp4″));

注意,如果不使用longblob可能出现错误