我应该用 BLOB 替换多个浮点列吗?



SQL Server中的单个BLOB列(性能方面)与~20个REAL列(20 x 32位浮点数)相比如何?

我记得 Martin Fowler 建议使用 BLOB 来持久化大型对象图(在企业应用程序架构模式中)以删除查询中的多个联接,但是对于具有 20 个固定列(从未在查询中使用)的表做这样的事情是否有意义?

此表非常频繁地更新,每秒大约更新 100 次,并且查询中指定的所有列INSERT语句都变得相当大。

我认为第一个答案将是"自己分析它",但我想知道是否有人已经有这方面的经验。

通常,

如果您没有发现这对于满足您的性能要求至关重要,则不应这样做。

如果将其存储在一个 blob 中,则在对对象结构进行任何更改(如添加或删除列)时,需要重新计算整个数据库。如果保留多个列,则将来的数据库重构和部署将容易得多。

我不能完全说明SELECT的性能,您需要对其进行测试,但我非常怀疑它会导致任何性能问题,因为您不会读取比以前更多的数据。但是,关于 INSERT ,您应该看到性能提升(我不确定的大小),因为可能没有任何统计指标需要更新。当然,这取决于很多设置,但我只是把我的意见扔在那里。这个问题非常主观,没有足够的信息来真正告诉您是否会看到围绕更改的性能问题。

现在,在实践中,我要

说的是,除非你看到真正的性能问题,否则就这样吧。此外,如果您看到真正的性能问题,请在选择此类解决方案之前分析这些问题,可能还有其他方法可以解决这些问题。

相关内容

  • 没有找到相关文章

最新更新