使用DBM数据库(例如Berkeley或GDBM)时,使用较少的长字符串或更短的字符串来存储数据是否更好?我可以轻松地构建我的数据。我在性能意义上寻找'更好',但我也对其他含义感兴趣。
答案 0 :(得分:3)
Berkeley DB或任何其他DBM实现将为每个键/值对产生开销。如果你正在处理数百万个k / v对,那么开销很重要,否则就是噪音,你应该为程序员选择最简单的方法,让数据库处理数据。开销和访问时间也取决于访问方法。哈希表和B树是完全不同的算法动物。如果您的数据具有任何程度的密钥排序或依赖于密钥的访问模式,那么99%的时间都可以使用B-Trees。
我认为你问的是一个很棒的设计问题,但我想任何人都可以给你一个完美的答案,我们都需要了解更多关于你处理的数据量,访问模式等等。因素。
答案 1 :(得分:1)
如果您经常搜索或修改数据,那么更多的短字符串将提供更好的性能。
即您不希望搜索其中一个长字符串的子字符串,或者经常在字符串中间修改某个值。
答案 2 :(得分:0)
我认为这个问题很难以完全通用的方式回答。这里有很多变量,你真的需要测试一些常见的场景来确定最适合你的答案。
需要考虑的一些因素:
最后,通常更好地采用产生最规范化模式的方法。优化可以从那里开始,并且根据你的数据库,可能有更好的选择,而不是仅仅为了性能而重构底层模式。