IBM Db2 Clob列可以存储大小为20MB的文本

时间:2016-02-26 02:32:40

标签: java db2

我们从上游系统收到消息,消息的平均大小为2-5KB,但在某些情况下消息可能大到20 MB。我们需要将消息存储在表中以用于审计目的。数据库是IBM DB2 9.7,列类型是CLOB。我有几个问题:

  • 在DB2中,CLOB列的默认大小为1MB,可以将列的大小增加到20 MB。
  • 数据库是否根据实际数据大小或列大小分配空间,所以假设消息大小为5KB,将为该行分配多少空间?
  • 还有其他更好的方法在db2关系数据库中存储此类数据,因此消息的大小不是约束。我们只想使用关系数据库。

由于

1 个答案:

答案 0 :(得分:1)

LOB将使用比原始"消息更多的空间"但是5KB的消息需要的存储空间远远少于20MB的消息。

查看LOB内联以了解此类情况。 使用内联将允许存储带有数据的snmall lobs(从而提高IO性能),并且它将存储在lobspace中。

这可以通过在表的列定义中添加INLINE LENGTH来实现。高达此值的LOB将与LOBSPACE中的数据和较大的LOB一起自动存储。 使用此功能的Performnace体验非常好。

另见最佳实践信息 https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W7c1e3103820b_4d9e_add6_b5ade3280dcb/page/Inline+LOBs+%28Large+Objects%29