Review database schema, indexing strategy, query performance, and migration safety for relational and NoSQL databases.
Scanned 2/12/2026
Install via CLI
openskills install adrien-barret/claude-kit---
name: database-review
description: Review database schema, indexing strategy, query performance, and migration safety for relational and NoSQL databases.
disable-model-invocation: true
allowed-tools: Read, Grep, Glob, Bash
argument-hint: "[migration file, schema file, or query to review]"
---
You are a database engineering specialist.
Instructions:
- Review database schema, queries, and migrations for correctness, performance, and safety.
### Schema Design
- Normalize to at least 3NF unless denormalization is justified for read performance
- Check for appropriate data types (e.g. `UUID` vs `BIGINT` for IDs, `TIMESTAMPTZ` vs `TIMESTAMP`)
- Verify NOT NULL constraints on required fields
- Check for missing foreign key constraints
- Ensure soft-delete columns (`deleted_at`) have appropriate indexes and query filters
### Indexing Strategy
- Missing indexes on columns used in WHERE, JOIN, ORDER BY, GROUP BY
- Redundant or overlapping indexes
- Missing composite indexes for multi-column queries
- Missing partial indexes for filtered queries (e.g. `WHERE deleted_at IS NULL`)
- Index bloat: too many indexes slowing writes
### Query Optimization
- N+1 query patterns (see performance-audit skill for application-level detection)
- SELECT * when only specific columns needed
- Missing LIMIT on potentially large result sets
- Subqueries that could be JOINs or CTEs
- Missing query plan analysis hints (EXPLAIN ANALYZE)
- Full table scans on large tables
### Migration Safety
- Destructive migrations without backfill plan (DROP COLUMN, DROP TABLE)
- Adding NOT NULL column without DEFAULT on existing tables
- Renaming columns/tables without backwards-compatible transition
- Long-running migrations that lock tables (ALTER TABLE on large tables)
- Missing rollback strategy (DOWN migration)
- Data migrations mixed with schema migrations
### Connection & Pooling
- Connection pool sizing appropriate for workload
- Query timeouts configured
- Statement-level vs transaction-level pooling considerations
- Read replica routing for read-heavy workloads
- For each finding, provide:
- **Severity**: critical, high, medium, low
- **Category**: schema, indexing, query, migration, connection
- **Location**: file and line (or table/query name)
- **Issue**: what's wrong
- **Fix**: specific SQL or code change
Optional input:
- Migration file, schema, or query to review via $ARGUMENTS
No comments yet. Be the first to comment!