【问题标题】:Best design for a database containing blobs包含 blob 的数据库的最佳设计
【发布时间】:2012-01-01 04:21:40
【问题描述】:

我正在徘徊对于应用程序数据库的最佳设计是什么,我必须在其中存储大量记录以及与它们相关联(一对一)的 blob。

为 blob 使用单独的表更好吗?

我的应用程序依赖于 MySQL 和 Hibernate。

【问题讨论】:

    标签: mysql hibernate schema blob


    【解决方案1】:

    从长远来看,使用单独的表会更好,尤其是当您有很多 blob 时。关键是当您将它们与其他字段一起放在一个表中时,该表将需要更长的时间来重建或更改其中的所有 blob。当您仅引用 blob 时,此表会快得多。

    我在 google 上搜索了一些对此声明的支持,并发现这篇冗长但有趣的阅读:http://mysqldatabaseadministration.blogspot.com/2008/01/i-will-not-blob.html

    【讨论】:

    • 这篇文章读起来不错,但它正在讨论图像是存储在数据库中还是文件系统中。问题是使用一个表还是多个表。
    • 它还讨论了数据库影响。以及使用一个或多个表:'除非 BLOB 保存在一个单独的表中,比如 photo_blob,从主表(比如 photo)中,否则您将使架构更改成为您自己的噩梦,因为您将在额外的 TT TB。'
    • +1。谢谢(你的)信息。即使我已经用这些信息更新了我的答案。
    【解决方案2】:

    您的选择应取决于数据量和交易量。如果BLOB 数据量较少(比如文件数量少于 10000),您可以按照这些步骤操作,否则可能会成为article 的瓶颈。

    Is it better to use a separate table for blobs?

    您的意思是one table 的所有列都为BLOB 类型。我认为这不是一个好主意。

    What to do then?

    BLOBSQL 中可用的众多数据类型之一。 您的数据库设计不应依赖于datatype you use。假设您要存储用户详细信息,包括用户的图像。我觉得UserusrImage 中应该有一个列来存储BLOB 类型的图像。我是否使用BLOB 并不重要,我将继续拥有User 表。

    BLOB 与任何其他数据类型相似,因此请将它们附加到适合您的数据库设计的任何位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      相关资源
      最近更新 更多