我需要将图像存储在DB2 Blob字段中。平均图像大小约为200KB,但在极少数情况下会有2-4MB的图像。我不想拒绝这些图像,所以我想我会定义一个BLOB(5M)
。这是可以做的,或者即使大部分未被使用,这个Blob总是消耗5MB吗?
如果很难找到平均值,那么处理Blob大小的常用方法是什么?
答案 0 :(得分:3)
blob只会根据需要使用尽可能多的空间。定义一个大的最大值没有开销(把它想象成“约束”而不是物理的东西)
答案 1 :(得分:0)
我可以证实这一点。 BLOB(5M)仅向DB2指示您的blob最大大小为5MB。 db2需要对内部优化进行此操作。 请注意,分配的空间将是页面大小的倍数,因此您必须根据它优化内容。
如果超过50%的图像小于< 32k,您可能会想到使用内联LOB。请参阅https://blog.voina.org/?p=335
如果您的图片大于> 1MB,则内联无效,但您的页面尺寸应为32k。
如果您的大多数图像实际上大约是200k,那么您应该考虑对数据库使用8k页面大小,而不是为LOB分配32k块,这可能会导致磁盘空间不足。