mcpField
D
django-pagination-performance

django-pagination-performance

github.com/lvtd-llc开发162 次安装7 周前更新
代码仓库

关于 django-pagination-performance

面向 Django 开发者的工作流技能,用于排查列表视图和 API 随数据增长而变慢的问题。它通过梳理需求、测量查询并检查稳定排序,帮助选择分页方式。

主要功能

  1. 01梳理分页需求
  2. 02测量页面与计数查询
  3. 03选择偏移或游标分页
  4. 04设置稳定且有索引的排序
  5. 05验证深页表现

适用场景

  1. 01加快大型 Django 信息流
  2. 02限制高成本的深页访问
  3. 03排查分页结果不一致

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lvtd-llc/skills --skill django-pagination-performance

安装后在 Claude Code 中输入/django-pagination-performance确认已加载。

附带文件references/pagination-patterns.md

详细介绍

Django 分页性能

当 Django 列表视图或 API 随着页码变大或结果集增长而变慢时,请使用此技能。分页既是查询设计问题,也是响应整形问题。

工作流

  1. 确认列表契约。

    • 是否需要任意访问页面,还是只需要上一页/下一页?
    • UI 是否需要总数?
    • 排序能否固定且稳定?
    • 可接受的页面大小上限是多少?
  2. 衡量当前查询。

    • 捕获页面查询和计数查询的 SQL。
    • 检查排序、索引和较大的页码。
    • 对深页使用 QuerySet.explain()。
  3. 选择分页方式。

    • 对中等规模的结果集和任意页面访问,使用 Django Paginator。
    • 当页码有用但应限制深页时,使用有上限的偏移分页。
    • 对大型信息流、时间线、日志和无限滚动,使用键集/游标分页。
    • 对需要通过稳定排序进行 API 上一页/下一页导航的场景,使用 DRF CursorPagination。

请参阅 pagination-patterns.md,了解 Django 和 DRF 示例。

安全注意事项

  • 深层 LIMIT/OFFSET 页面可能会很慢,因为数据库仍需遍历被跳过的行。
  • 未排序的查询集会导致页面内容不一致。
  • 游标分页会限制任意跳转页面和用户控制排序。
  • 大型精确计数可能会成为列表延迟的主要来源。

验证

根据所选分页契约,衡量第一页、有代表性的深页、计数查询,以及插入/删除时的一致性。

评论

支持 Markdown