Communitygithub.com

sshdkeyu/skill-prod-cursor

Produktions-Datenzugriffs-Playbook für das N+1-Abfrageproblem. Verwenden Sie es, wenn Code eine Datenbank innerhalb einer Schleife abfragt, ein ORM eine Beziehung pro Zeile lazy-loadet oder ein Listen-Endpunkt bei 5 Zeilen schnell und bei 50 langsam ist.

Was ist skill-prod-cursor?

Dieses Skill behandelt das klassische N+1-Abfrageproblem in der Datenbankzugriffsschicht. Es identifiziert und behebt Situationen, in denen ein ORM (wie ActiveRecord, Hibernate oder Entity Framework) innerhalb einer Schleife für jede übergeordnete Entität eine separate Datenbankabfrage ausführt, oder in denen ein Join in paginierten Listen zu inkorrekten Ergebnissen führt. Das Skill unterstützt API-Endpunkte und Backend-Services auf Plattformen wie Ruby on Rails, Django, Spring Boot und ähnlichen Frameworks. Es verwendet eine Referenzdatei (references/bad-vs-good.md), die konkrete Beispiele für schlechten und guten Code zeigt. Der Skill fordert Entwickler auf, vor dem Laden einer Beziehung aus einer Sammlung die Dokumentation zu lesen und stellt klare „Erledigt, wenn“-Kriterien bereit, die sicherstellen, dass die Anzahl der Datenbankabfragen unabhängig von der Anzahl der Zeilen konstant bleibt und paginierte Listen korrekte Ergebnisse liefern.

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/sshdkeyu/skill-prod-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 die Grundlage: kein N+1, kein SELECT * auf einem heißen Pfad, Abfragen indexgestützt, große Listen paginiert. Dieses Skill beschreibt, wie diese Regel scheitert, wenn ein ORM oder eine Schleife die Round-Trips 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 Eltern nicht N Abfragen für dieselbe Beziehung ausführt.
  • Das Abfrageprotokoll oder ein Trace eine feste Anzahl von Anweisungen zeigt (1 oder 2, oder 1 + N/Batch), nicht eine pro Zeile.
  • Eine Seite von Eltern die Anzahl von Eltern zurückgibt, die Sie angefordert haben, nicht eine Seite von gejointen Zeilen.

Individual skills in this repo

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

Verwandte Skills