database-design - 在 RocksDB 中高效存储大列表结构,以便在页面中检索数据
问题描述
描述:
RocksDB 是一个键值存储,因此我们可以简单地序列化对象列表并存储与键对应的值。如果列表中的数据足够小,这将是可以的。
但是如果列表很大并且不断增加,那么我们需要对数据进行分页。因此,在这种情况下,存储与单个键对应的整个序列化列表数据不是一个好主意;因为每次将新数据插入列表时都会出现性能问题用户需要。
例如:假设我们想将用户下的订单存储在 RocksDB 中。然后我们可以在 RockDB “u:1:li:o” 中以以下方式存储这些订单数据:Serialized([O1{}, O2{},….On{}])。但是,如果用户下达了数千个订单,我们希望以页面的形式检索订单(一次 10 或 20 条记录)。因此,将数千个订单存储在同一个键中并从该键中检索整个数据,然后提供所需的 10-20 条记录并不是一个好主意。此外,用户向同一键添加新订单也会影响上述性能。
所以我正在努力设计架构,以便在 RocksDB 中有效地存储和检索如此大的列表。
如果您可以就架构设计提出建议,那将非常有用。
解决方案
推荐阅读
- javascript - 检查页面的页面可见性和页面焦点
- javascript - 更改菜单项的语言
- jquery - 延迟第二次点击,直到 animate.css 完成动画
- git - 如何在不打开编辑器的情况下进行 git commit 以实现自动化目的
- amazon-web-services - 有什么方法可以知道离线保存的数据是否已经在线同步?
- java - Docker OpenJDK -Xmx 或
- c - 使用范围外声明
- python-3.x - HDFStore 初始化错误:名称未定义
- css - RWD 和智能手机的屏幕 x 浏览器窗口大小
- python - Python 字典迭代:d 与 d.viewkeys()