【发布时间】:2014-07-08 20:20:42
【问题描述】:
我需要在 Azure 表存储中存储可变大小的列表。假设它是一个列表 GUID,每个列表可以有数万个 GUID(例如,用户撰写的帖子的 ID)。
我在这里考虑两种方法:
- 以高效的二进制格式(如 protobuf)序列化列表并将结果存储在 blob 中
- 优点:我可以在一次操作中获取完整列表
- 缺点:我需要在内存中管理整个列表,甚至访问一个范围或单个项目!
- 将列表存储在表中,列表 ID 为分区键,每个 GUID 为行键
- 优点:我可以随机访问每个 GUID,并且可以“分页”范围查询(取 20,然后用 RK 取 20 > 上一个范围的最后一项...)
- 缺点:提取需要完整的分区扫描,我认为这与跨流一样糟糕
基本上,我正在寻找关于选项 2 缺点的确认:即使我限制检索到的实体数量 (.Take(x)) 并且我可以选择对 RK 设置约束,分区扫描是否如此糟糕?
此外,欢迎使用其他在 Azure Tables 中有效存储此类列表的方法,尽管我认为选项有限!
谢谢
【问题讨论】:
标签: azure azure-storage azure-blob-storage azure-table-storage