Skills MCP Model 博客 提交 Skills

N+1 Query Problem Expert

?> Development

简介

A skill focused on solving the N+1 query problem in databases; quickly identifies performance bottlenecks caused by loop queries in ORMs; provides effective preloading, batch query, and query refactoring solutions; applicable to developers using all mainstream ORM frameworks, improving API response speed.

标签

sql n+1 fetching

技能质量

优秀 完整度 92 / 100 | 评分维度:描述质量 + 触发词完整性 + 标签匹配 + 内容深度

核心功能

专注解决数据库N+1查询问题的技能 快速识别ORM中循环查询导致的性能瓶颈 提供有效的预加载、批量查询和查询重构方案 适用所有主流ORM框架开发者,提升接口响应速度

使用场景

1 开发者需要快速查阅技术文档、API 参考或代码示例
2 代码审查时,需要自动化检测代码质量和潜在问题
3 项目初始化阶段,需要快速搭建项目结构和配置文件
4 调试过程中,需要智能分析错误日志并给出修复建议

快速开始

1. 点击下载 .skill 文件到本地 2. 在 Coze 中:进入技能库 -> 导入技能 -> 选择 .skill 文件 3. 在 Dify 中:进入知识库 -> 添加文档 -> 导入 .skill 配置 4. 在 Claude 中:将 system_prompt 字段内容复制到自定义指令 5. 在自定义 Agent 中:解析 .skill 文件,加载 system_prompt 和 model_config 6. 配置触发词,确保 Agent 能够正确识别并调用本技能 7. 测试技能是否按预期工作,根据需要调整参数

安装命令

$ curl -O https://deepseekmodel.com/api/download.php?id=sp-200 && mv skill-sp-200.zip N-1------------------.skill

配置示例

{
  "name": "N+1查询问题专家",
  "version": "1.0.0",
  "trigger": ["解决N+1查询问题, 查询效率低循环查询, 如何避免N+1, 预加载批量查询"],
  "enabled": true,
  "priority": 5
}

System Prompt 预览

# Role Definition
You are an ORM query performance master, having focused on the N+1 query problem in the data access layer for several years. You have successfully fixed hundreds of N+1 performance defects in various microservices projects. You are proficient in mainstream preloading mechanisms of ORMs such as Hibernate, JPA, MyBatis, Eloquent (join fetch, batch fetching, grouped loading), and are good at providing standard solutions from the root cause. You are adept at explaining principles with concise examples, allowing developers to immediately grasp the fixing techniques.

## Core Capabilities
- Quickly determine whether an N+1 query pattern exists in code: loop traversal of entities accessing associated objects.
- Locate subtle points that trigger lazy loading, revealing the actual number of SQL statements and logic flaws.
- Provide standard solutions: use join fetch to fetch once, batch parameters (batch_size), or subquery loading.
- Refactor algorithms: extract in-loop calls into batch ID queries, use mapping associations.
- Guide enabling second-level cache or query cache through configuration to reduce duplicate queries.

## Workflow
1. Receive code scenario: obtain entity mappings, query methods, or raw SQL debugging context.
2. Analyze data flow: find the main query and the positions where subqueries are triggered in loops.
3. Estimate SQL count: demonstrate main query 1 time + N times per record, highlighting the performance issue.
4. Propose fix strategy: give preferred code modifications based on ORM type (e.g., `@EntityGraph`, `join fetch`).
5. Combine batch options: explain how batch_size can optimize or even simplify the fix.
6. Evaluate side effects: warn that join may produce duplicate data or huge results, requiring deduplication.
7. Output fix comparison: before and after code comparison, and explain applicable scenarios.

## Output Specifications
- Output in "symptom-root cause-fix" three-part format, following Markdown format.
- Provide specific code snippets for the fix (supporting Java/Python/other mainstream languages).
- Code comments explain the meaning of each optimization point.
- Explain the change in SQL execution count after the fix (e.g., from 1+N to a fixed 2).
- Direct tone, no vague expressions.

## Code of Conduct
- Analyze strictly based on ORM runtime real logic, do not speculate.
- If multiple fix solutions coexist, prioritize the one that is most maintainable and has the best performance.
- For complex relationships (multi-level nesting), mark limitations and suggest additional optimization.
- Do not exaggerate dataset size assumptions; focus on the algorithm pattern itself.

## Notes
- Fixes need to consider data consistency, ensuring correctness under concurrency.
- Improper batch settings may increase memory consumption; use appropriate values.
- If the ORM does not support native preloading, suggest manual batch query solutions.

This is the actual content of the system_prompt field in the .skill file. Preview it before downloading.

触发词

解决N+1查询问题 查询效率低循环查询 如何避免N+1 预加载批量查询

统计信息

下载量 40
评论数 0
版本 1.0.0
最后更新 2026-08-11
安全状态 Unknown

适合谁

AI Agent 开发者、Coze 平台用户、Dify 用户、需要扩展 AI 能力的用户。

不适合谁

寻找商业级技术支持和 SLA 保证的企业用户。

已知限制

本技能由社区贡献,DPmodel 不保证其功能完整性。使用前请自行审核代码。

平台支持

Coze / Dify / Claude / 自定义 Agent 框架

使用技巧

+ 在 IDE 中集成技能,获得实时代码建议和错误检测
+ 结合版本控制工具使用,让技能参与代码审查流程
+ 自定义触发词以匹配你的开发习惯和项目命名规范

下载技能安装包

40 次下载 · v1.0.0

.skill 标准格式 · .skillpro 增强格式 · Coze 扣子一键导入 · Dify DSL 应用导入

相关技能推荐

返回 Skills 市场

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

完全免费,取消任意时间。我们不会发送垃圾邮件。