【发布时间】:2012-01-01 04:21:40
【问题描述】:
我正在徘徊对于应用程序数据库的最佳设计是什么,我必须在其中存储大量记录以及与它们相关联(一对一)的 blob。
为 blob 使用单独的表更好吗?
我的应用程序依赖于 MySQL 和 Hibernate。
【问题讨论】:
标签: mysql hibernate schema blob
我正在徘徊对于应用程序数据库的最佳设计是什么,我必须在其中存储大量记录以及与它们相关联(一对一)的 blob。
为 blob 使用单独的表更好吗?
我的应用程序依赖于 MySQL 和 Hibernate。
【问题讨论】:
标签: mysql hibernate schema blob
从长远来看,使用单独的表会更好,尤其是当您有很多 blob 时。关键是当您将它们与其他字段一起放在一个表中时,该表将需要更长的时间来重建或更改其中的所有 blob。当您仅引用 blob 时,此表会快得多。
我在 google 上搜索了一些对此声明的支持,并发现这篇冗长但有趣的阅读:http://mysqldatabaseadministration.blogspot.com/2008/01/i-will-not-blob.html
【讨论】:
您的选择应取决于数据量和交易量。如果BLOB 数据量较少(比如文件数量少于 10000),您可以按照这些步骤操作,否则可能会成为article 的瓶颈。
Is it better to use a separate table for blobs?
您的意思是one table 的所有列都为BLOB 类型。我认为这不是一个好主意。
What to do then?
BLOB 是 SQL 中可用的众多数据类型之一。 您的数据库设计不应依赖于datatype you use。假设您要存储用户详细信息,包括用户的图像。我觉得User 表usrImage 中应该有一个列来存储BLOB 类型的图像。我是否使用BLOB 并不重要,我将继续拥有User 表。
BLOB 与任何其他数据类型相似,因此请将它们附加到适合您的数据库设计的任何位置。
【讨论】: