Django Index Design
SkillDatabases & dataDesign safe Django and PostgreSQL indexes from measured query plans, including B-tree, composite, covering, partial, expression, GIN/JSONB, BRIN, and concurrent migration patterns. Use when a Django query plan suggests missing or mismatched indexes, a production table needs an index without write downtime, or existing indexes need review.
Use Django Index Design in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Django Index Design and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Django Index Design skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by hashgraph-online/awesome-codex-plugins in plugins/LVTD-LLC/skills/skills/django-index-design/SKILL.md and read by Ahel’s review.
Use this skill to add or change indexes only after profiling shows a specific query can benefit. Indexes speed selected reads and constraints, but they add write cost, migration risk, and maintenance overhead.
Workflow
-
Start from a query plan.
- Capture the SQL, filters, joins, ordering, selected columns, table sizes, and current indexes.
- Confirm that the query is important enough to optimize.
-
Choose the index shape.
- Equality filters first, then range/order fields when useful.
- Match
ORDER BYforLIMITqueries when possible. - Use partial indexes for highly queried subsets.
- Use covering indexes only when selected columns are stable and index-only scans are plausible.
- Use GIN for JSONB containment, arrays, and full-text patterns; do not expect a B-tree to solve those.
-
Express the index in Django models or migrations.
- Prefer
Meta.indexesfor normal model-owned indexes. - Prefer
AddIndexConcurrentlyandRemoveIndexConcurrentlyfor live PostgreSQL tables. - Use raw SQL only when Django cannot express the index.
- Prefer
-
Validate on production-like data.
- Re-run
QuerySet.explain()orEXPLAIN ANALYZE. - Verify the planner uses the index for the target query.
- Check write-path impact when the indexed table is hot.
- Re-run
See index-patterns.md for index examples and migration templates.
Production Rules
- For PostgreSQL live tables, use concurrent index operations and set the migration
atomic = False. - Keep names short, stable, and explicit.
- Do not add duplicate indexes that are already covered by a unique constraint or a left-prefix composite index.
- Remove unused indexes only after checking production usage and deployment rollback needs.
Verification
Finish with before/after plan evidence, the exact migration operation, and the operational risk assessment for locks, writes, and rollback.
Signals
- GitHub stars
- 1k
- Forks
- 316
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
django-index-design- Source
- github.com/hashgraph-online/awesome-codex-plugins
github.com/hashgraph-online/awesome-codex-plugins
Related picks
Skill · hashgraph-online
The pick for Djangointegration-django
Skill · posthog
The pick for Djangosupabase-postgres-best-practices
Skill · baekenough
The pick for Postgresanalytics
Skill · coreyhaines31
More in Databases & datasupabase
Skill · supabase
More in Databases & dataconnect
Skill · composiohq
More in Databases & data