【问题标题】:BerkeleyDB - implications of incorrect sorting order?BerkeleyDB - 排序顺序不正确的影响?
【发布时间】:2012-02-24 01:33:19
【问题描述】:

根据这个FAQ,如果不为 little-endian 系统上的二进制数据指定排序函数,页面填充因子可能会受到不利影响。我知道这也会导致游标无法以“正确”的排序顺序返回数据。

除了过度使用页面之外,这是否会导致任何其他性能问题?例如,糟糕的页面填充因子是否会对键查找的速度产生不利影响?

此外,如果我已经将数据存储在 BTREE 中没有排序功能,如果我随后开始使用排序功能添加新记录,会不会有任何问题?即最初使用的排序顺序和新的排序函数之间的不匹配是否会中断键查找?

【问题讨论】:

    标签: berkeley-db


    【解决方案1】:

    是的,不正确的字节序会降低您的填充因子,从而导致您的数据库更大且访问速度更慢。今天我使用顺序整数键插入大约 3000 万条记录,发现 btree 填充因子非常差(60%)。然后更改键的字节顺序(使用 htonl() 函数),填充因子跃升至 99%。同时,数据库大小从 1.3 GB 减少到 700 MB。 当您的键是顺序的或显示某些局部性(相关数据的通用前缀)时,字节顺序很重要。对于某些更改字节顺序的键可能会降低性能(我在手机号码上遇到过这种情况)。 顺便说一句,您不必提供排序功能 - 您可以在插入和按键搜索时将键转换为正确的字节顺序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 2012-08-11
      • 1970-01-01
      相关资源
      最近更新 更多