1

当使用 DBM 数据库(例如 Berkeley 或 GDBM)时,使用更少的长字符串或更多的短字符串存储数据更好吗?无论哪种方式,我都可以轻松地构建我的数据。我正在寻找性能意义上的“更好”,但我也对其他含义感兴趣。

4

3 回答 3

3

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

我认为您提出了一个很好的设计问题,但我认为任何人要给您一个完美的答案,我们都必须更多地了解您处理的数据量、访问模式和许多其他因素。

于 2011-01-20T20:15:20.440 回答
1

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

,您不想搜索这些长字符串之一的子字符串,或者经常修改字符串中间的某个值。

于 2009-07-15T15:24:16.783 回答
0

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

需要考虑的一些因素:

  • 较大的字符串是否需要子字符串搜索?
  • 您将对数据执行什么样的搜索?

最后,通常最好采用产生最规范化模式的方法。优化可以从那里开始,并且取决于您的数据库,可能有比纯粹为了性能而重构底层架构更好的选择。

于 2009-07-15T15:23:22.807 回答