DBM数据库的理想字符串长度?

时间:2009-07-15 15:16:56

标签: database berkeley-db dbm gdbm

使用DBM数据库(例如Berkeley或GDBM)时,使用较少的长字符串或更短的字符串来存储数据是否更好?我可以轻松地构建我的数据。我在性能意义上寻找'更好',但我也对其他含义感兴趣。

3 个答案:

答案 0 :(得分:3)

Berkeley DB或任何其他DBM实现将为每个键/值对产生开销。如果你正在处理数百万个k / v对,那么开销很重要,否则就是噪音,你应该为程序员选择最简单的方法,让数据库处理数据。开销和访问时间也取决于访问方法。哈希表和B树是完全不同的算法动物。如果您的数据具有任何程度的密钥排序或依赖于密钥的访问模式,那么99%的时间都可以使用B-Trees。

我认为你问的是一个很棒的设计问题,但我想任何人都可以给你一个完美的答案,我们都需要了解更多关于你处理的数据量,访问模式等等。因素。

答案 1 :(得分:1)

如果您经常搜索或修改数据,那么更多的短字符串将提供更好的性能。

您不希望搜索其中一个长字符串的子字符串,或者经常在字符串中间修改某个值。

答案 2 :(得分:0)

我认为这个问题很难以完全通用的方式回答。这里有很多变量,你真的需要测试一些常见的场景来确定最适合你的答案。

需要考虑的一些因素:

  • 较大的字符串是否需要子字符串搜索?
  • 您将对数据进行哪种搜索?

最后,通常更好地采用产生最规范化模式的方法。优化可以从那里开始,并且根据你的数据库,可能有更好的选择,而不是仅仅为了性能而重构底层模式。