有没有办法更改leveldb中的键?

 笑不评j 发布于 2023-02-03 10:16

有一些如何仅更改leveldb数据库中键的值的方法吗?

我已经有一个拥有1800万行的数据库,并且我想更改键以添加前缀。

我正在将leveldb与node.js一起使用。但是任何解决方案都必须适合。

我已经尝试过重建该数据库,但是它花费了太多时间。

1 个回答
  • LevelDB的工作方式是,每个“放置”都是创建新状态的写操作。如果执行“覆盖”(Put)操作以覆盖现有值,则将有两个副本,直到压缩消除了较早的值。

    实际上,这意味着重建将是唯一的选择。

    为了更快,您可以尝试:

    扫描现有数据库,然后通过对键空间进行线性扫描来重建。您的新数据将按排序顺序插入,这可能有助于加快处理速度。

    分批插入。LevelDB的许多变体将减慢写入速度以适应压缩。在库存的LevelDB中,您的写入器每当需要睡眠时将睡眠1毫秒,这与批处理中的写入次数无关。

    增加写缓冲区大小。我发现16MB-32MB是一个不错的“最佳选择”。

    考虑使用HyperLevelDB。我们在写入时遇到了LevelDB的一些性能问题,并进行了一些更改以提高性能。您会看到插入速度加快,这可以帮助您更快地重建-有时会更快。

    2023-02-03 10:19 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有