Communitygithub.com

sshdkeyu/skill-prod-cursor

解決 N+1 查詢問題的生產資料存取腳本。當程式在迴圈中查詢資料庫、ORM 延遲載入每行的關聯,或列表端點在 5 行時很快但在 50 行時變慢時使用。已處理的案例可參考 references/bad-vs-good.md。不適用於 HTTP 合約設計或 Go/JavaScript 語言風格。

skill-prod-cursor 是什麼?

此技能專門用於解決資料存取層中最常見的 N+1 查詢問題。其主要用途是引導開發人員在 ORM 或迴圈隱藏了多次資料庫往返時,識別並修復效能瓶頸。支援的平台包括任何使用 ORM 的後端應用程式(例如使用 Entity Framework、Hibernate、Active Record、SQLAlchemy 等框架的應用),以及任何需要處理大量資料列表的場景。技能的核心運作方式是提供一個結構化腳本,要求開發人員在載入關係、標記映射為立即載入,或將一對多關聯加入分頁列表之前,先查閱參考文檔 (references/bad-vs-good.md),並遵循具體的完成條件來驗證修復是否成功。完成條件包括:確保父列表不會為相同關聯發出 N 次查詢、查詢日誌顯示固定數量的陳述式,以及分頁結果正確返回請求數量的父項目。此技能特別強調遵循規則 `03`(禁止 N+1、熱路徑上的 SELECT *、無索引查詢以及未分頁的大列表),並明確指出不應使用於 HTTP 合約設計或 Go/JavaScript 語言風格問題。

相容平台~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/批次),而不是每行一個。
  • 一頁父項目傳回的數量應等於您要求的父項目數量,而不是一頁已 JOIN 的資料行。

Individual skills in this repo

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

相關技能