Communitygithub.com

backupcompany/skill-cursor

Produktions-Datenzugriffs-Playbook für das N+1-Abfrageproblem. Verwenden, wenn Code eine Datenbank in einer Schleife abfragt, ein ORM eine Beziehung pro Zeile lazy lädt oder ein List-Endpunkt bei 5 Zeilen schnell und bei 50 langsam ist. Ausgearbeitete Fälle befinden sich in references/bad-vs-good.md. Nicht verwenden für HTTP-Vertragsdesign oder Go/JavaScript-Sprachstil.

Was ist skill-cursor?

Dieses Skill befasst sich mit dem klassischen N+1-Abfrageproblem in der Datenbankzugriffsschicht. Es bietet ein Playbook zur Erkennung und Behebung von N+1-Problemen, die durch ORMs, verschachtelte Schleifen oder ineffiziente Lazy-Loading-Mechanismen verursacht werden. Entwickler lernen, wie sie Datenbankabfragen optimieren, indem sie Eager Loading, Batched Queries oder optimierte Joins einsetzen. Das Skill unterstützt gängige Frameworks und ORMs und enthält in references/bad-vs-good.md ausgearbeitete Fallbeispiele. Es ist besonders nützlich für Code-Reviews, Performance-Audits und Debugging von langsamen Listenendpunkten. Das Skill definiert klare Abbruchkriterien („Done when“), um sicherzustellen, dass nach der Optimierung die Anzahl der Datenbankabfragen konstant bleibt und keine ungewollte Zeilenvervielfachung auftritt.

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/backupcompany/skill-cursor/tree/HEAD/skills/data-access

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Datenzugriff

Regel 03 ist das Minimum: kein N+1, kein SELECT * auf einem heißen Pfad, Abfragen indexgestützt, große Listen paginiert. Dieses Skill beschreibt, wie diese Regel verletzt wird, wenn ein ORM oder eine Schleife die Roundtrips verbirgt.

Lesen Sie references/bad-vs-good.md, bevor Sie eine Beziehung aus einer Sammlung laden, ein Mapping als Eager markieren oder einen One-to-Many-Join in eine paginierte Liste einfügen.

Erledigt, wenn

  • Eine Liste von N Elternobjekten nicht N Abfragen für dieselbe Beziehung ausführt.
  • Das Abfrageprotokoll oder ein Trace eine feste Anzahl von Anweisungen anzeigt (1 oder 2, oder 1 + N/Batch), nicht eine pro Zeile.
  • Eine Seite mit Elternobjekten genau die Anzahl der angefragten Elternobjekte zurückgibt, nicht eine Seite mit gejointen Zeilen.

Individual skills in this repo

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

Verwandte Skills