【发布时间】:2011-11-21 17:41:23
【问题描述】:
我有一个新程序,它将生成大量 Base64 编码的音频和图像数据。这些数据将通过 HTTP 以 XML 的形式提供,Base64 数据将是内联的。这些文件很可能会突破 20MB 或更高。直接从文件系统提供这些文件会更有效,还是将数据存储在 MySQL 数据库中是否可行?将设置缓存,但总体而言没有必要,因为这些数据可能会在创建和提供后不久被清除。
我知道在大多数情况下,在数据库中存储二进制数据是不受欢迎的,但由于这都是字符数据,我想看看共识是什么。到目前为止,出于效率原因,我倾向于将它们存储在文件系统中,但如果将它们存储在数据库中是可行的,那么管理数据会容易得多。
【问题讨论】:
-
将原始文件保存在文件系统上并使用base64即时编码。
-
之所以不赞成将二进制数据存储在DB中的原因不是数据是二进制的,而是它是不可变的,不参与信息逻辑数据库模型。数据的 base64 表示也是如此,因此最好也将其放入单独的存储中,并且数据库应该只维护一个索引。
-
我倾向于这种逻辑,Kerrek。即时编码可能是可行的,但我可能需要事先生成文件并将其存储在某处。听起来像存储这些数据,无论它是什么形式,都将更适合文件系统。这就是我一开始就倾向于的,所以我想我可以忍受它。
标签: database filesystems base64