Communitygithub.com

sshdkeyu/skill-prod-cursor

N+1 查询问题的生产级数据访问规范。当代码在循环中查询数据库、ORM 按行懒加载关联关系、或列表端点 5 行快而 50 行慢时使用。不适用于 HTTP 契约设计或 Go/JavaScript 语言风格。

skill-prod-cursor 是什么?

此技能是专门针对生产环境中 N+1 查询问题的数据访问规范。它详细描述了当 ORM 或循环隐藏了往返次数时,如何避免 N+1 问题、SELECT * 查询以及大列表未分页的情况。该技能适用于任何使用 ORM 或循环查询数据库的代码库,特别是在控制器、服务层或数据访问层中出现懒加载或逐行查询时。它提供了具体的检查清单和“完成条件”,确保每次查询语句数量固定(1 或 2 个),且分页返回正确的父级数量,而不是连接后的行数。同时,技能要求开发者首先阅读 references/bad-vs-good.md 文件,了解实际案例后再进行关联加载或连接操作。

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/sshdkeyu/skill-prod-cursor/tree/HEAD/skills/data-access

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

数据访问

规则 03 是底线:无 N+1,热路径上无 SELECT *,查询有索引支持,大列表已分页。本技能描述的是当 ORM 或循环隐藏了往返次数时,规则如何失效。

从集合加载关联关系、将映射标记为急加载、或将一对多连接成分页列表之前,请先阅读 references/bad-vs-good.md。

完成条件

  • N 个父级列表不会对同一个关联关系发出 N 次查询。
  • 查询日志或追踪显示固定数量的语句(1 或 2 个,或者 1 + N/批量),而不是每行一条。
  • 一页父级返回您请求的父级数量,而不是连接后的行数。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相关技能