2011-04-12 18 views
1

目前,我的系统中有一堆表需要每行存储一条评论(而不是内容类型或其他任何内容 - 只需简单一条评论行和没有历史跟踪)。创建注释表并从所有其他需要注释的表中获取FK有什么好处,而不是直接在每个表中创建注释列?哪种方法更好 - 每个表中的评论属性与一个评论表

物理数据库方面有什么优势 - 就这两种方法的数据库性能而言?

回答

2

真的不可能在没有测试的情况下对性能进行有意义的评论(咳嗽)。你是唯一一个在合理的位置这样做的人。

在逻辑层面上,有关行中数据的注释应与行一起存储。

某些dbms将内部宽列移动到辅助存储区。当您不选择注释列(更少的物理读取)时,这会加快对行的访问速度,但是当您选择注释列时(从内部数据结构的不同部分读取)会减慢访问速度。除非您从数百万行中选择数千行,否则您可能不会注意到其中的差异。 (但是,再次测试...)

+0

非常感谢您的评论。 – 2011-04-12 15:40:56

2

有一个单独的表,并依赖于连接,可能是一个性能问题。除非相同的评论出现在多个表格中,否则没有理由将其分开。

+0

不,相同的评论不会去多个表。从数据库调优的角度来看,将所有这些评论放在一张表格中,因为评论长度可能会从几个字到几百行(是的,我们有这么长的意见)不一样。 – 2011-04-12 09:23:30

+0

这也取决于如何/如果您计划索引评论。性能方面,最好是在检索单个条目时将它们放在同一个表中。 – 2011-04-12 09:41:07

+0

感谢Jon的回答。我决定在线发表评论。 – 2011-04-13 07:16:05