GraphQL分页:Relay Cursor与Offset对比概览Cursor 基于稳定排序字段生成不重复位置指针;Offset 依赖固定顺序下的行偏移。Relay Connection 规范定义 `edges`、`pageInfo`、`first/after` 等语义,适合数据持续变更的场景。技术参数(已验证)Relay Connection 规范:`edges{node,cursor}` 与 `pageInfo{hasNextPage,hasPreviousPage,startCursor,endCursor}`。稳定排序:使用复合键如 `created_at,id` 保证新增/删除不会导致游标漂移;保持全局唯一与确定性顺序。游标编码:常见做法 Base64;包含排序键及方向;前后向分页分别用 `after/before` 与 `first/last`。查询性能:Offset 在大型表上会触发 `OFFSET N` 扫描与回表;Cursor 可利用索引范围扫描、覆盖索引,降低延迟。读写一致性:游标分页建议在只读视图或时间点快照下执行,避免跨页重复或遗漏。实战清单优先选择游标分页并显式稳定排序;同时提供前后向分页能力。为游标字段建立联合索引;返回完整 `pageInfo` 以利前端导航。对高并发写入场景启用时间点快照或乐观并发控制,保障跨页一致性。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
1.831185s