【问题标题】:Store audio in SQL Server?在 SQL Server 中存储音频?
【发布时间】:2015-09-10 02:52:07
【问题描述】:

在 SQL Server 中将音频文件(mp3、wav)存储为 BLOB 是否是个好主意?优点之一似乎是节省硬盘空间。这对可扩展性或性能有任何影响吗?

【问题讨论】:

    标签: sql-server sql-server-2005


    【解决方案1】:

    不,这不是一个好主意 :) 可变大小的字段(例如 TEXT 和 BLOB)会对性能产生各种影响。更好的方法是将文件存储在磁盘上,并在数据库表中维护对它们的引用。如今,硬盘空间非常便宜(尤其是与 CPU 和 I/O 性能相比),甚至不应该成为一个问题。

    【讨论】:

    • 我的应用程序存储了大量的音频文件,我们正面临硬盘短缺的问题。拥有单独的“文件服务器”是最佳做法。在线照片网站、在线文件共享网站如何存储大文件?
    • 任何规模的在线站点都将使用企业级存储解决方案,这些解决方案绝对不属于“便宜”的范畴,但可以提供令人难以置信的高性能和大型存储设施。
    • 您能推荐任何企业级存储解决方案吗?
    • 嗯,音频与大多数数据不同,我猜您会将其流式传输给用户(而不是让他们尽快下载)。无论如何,您都需要考虑诸如您想要支持的并发连接数、您可以期望/希望的缓存程度、您想要的吞吐量等因素。我认为没有简单的答案.我建议您使用 Google 来跟踪一些大型企业(例如 Flickr 或 Twitter)所做的演示,看看他们是如何做到的(更好的是,找到一家做您想做的事情的公司)。跨度>
    • 也就是说,如果您只想要一个企业数据库(并且愿意为此付费,包括设置/维护),那么请查看 DB2、Oracle 等。
    【解决方案2】:

    我认为这在很大程度上取决于您的应用程序是如何设计的。如果您要经常检索音频文件(或更新它们),则可能会严重影响性能,因为音频文件可能非常大。为什么不将它们放在共享的网络位置,而只是将文件的路径存储在数据库中呢?硬盘空间便宜,带宽和 SQL 性能不便宜。除非您有充分的理由将它们保存在数据库中(而且我认为这不是节省硬盘空间),否则最好将它们存储在本地或共享路径上。

    【讨论】:

    • 请看我对 D Carney 帖子的评论
    • 我不确定在线照片网站等如何存储二进制数据,但如果他们将其全部保存在数据库中,我会感到震惊。无论您将音频文件存储在数据库中还是其他地方,它们仍将占用大致相同的空间,但数据库不是放置它们的地方。添加硬盘驱动器,将应用程序移动到不同的服务器或将音频文件保存在完全不同的服务器上,然后将路径存储在数据库中。如果您将所有时间都花在检索大型音频文件上,您的数据库性能就会下降。
    【解决方案3】:

    如果您可以选择升级到 SQL 2008(即,如果您获得免费升级许可),那么FILESTREAM 是最佳选择 - 它将“链接”放在列中,但使用常规文件系统实际存储数据。

    在 SQL 2005 或更早版本中,我不会这样做。我也看不出它会如何节省硬盘空间; 5 megs 是 5 megs,无论是磁盘上的文件还是位于某处的数据库列中;后者只会使访问变得更加困难,并且正如其他人提到的那样,可能会对您的整体数据库性能产生负面影响。我猜有一些较小的文件系统开销,例如最小集群大小,但对于大文件(尤其是音频),影响可以忽略不计。

    【讨论】:

      【解决方案4】:

      如果您使用的是 Sql Server 2008,则可以使用 filestream 属性。 Sql Server 会将文件存储在文件系统上,但会将其链接到 varbinary 列。

      查看以下链接:

      http://www.aghausman.net/sql_server/configure-sql-server-2008-for-file-stream-2.html (断开的链接 - 仍可通过 https://web.archive.org/web/20120530062012/http://www.aghausman.net/sql_server/configure-sql-server-2008-for-file-stream-2.html 的 Internet 存档访问)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-27
        • 1970-01-01
        • 1970-01-01
        • 2011-08-11
        • 2012-07-10
        • 1970-01-01
        • 2019-01-23
        相关资源
        最近更新 更多