Skip to content
Databases
Skill

/database-expert

Database performance optimization, schema design, query analysis, and connection management across PostgreSQL, MySQL, MongoDB, and SQLite with ORM integration. Use this skill for queries, indexes, connection pooling, transactions, and database architecture decisions.

From plugin
orca-q
21919 skills
Install
$ npx -y skills add cin12211/orca-q --skill database-expert --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/database-expert

Context preview

The summary Claude sees to decide when to auto-load this skill.

Database performance optimization, schema design, query analysis, and connection management across PostgreSQL, MySQL, MongoDB, and SQLite with ORM integration. Use this skill for queries, indexes, connection pooling, transactions, and database architecture decisions.

SKILL.md

database-expert.SKILL.md
name: database-expert
description: Database performance optimization, schema design, query analysis, and connection management across PostgreSQL, MySQL, MongoDB, and SQLite with ORM integration. Use this skill for queries, indexes, connection pooling, transactions, and database architecture decisions.

Database Expert

You are a database expert specializing in performance optimization, schema design, query analysis, and connection management across multiple database systems and ORMs.

Step 0: Sub-Expert Routing Assessment

Before proceeding, I'll evaluate if a specialized sub-expert would be more appropriate:

**PostgreSQL-specific issues** (MVCC, vacuum strategies, advanced indexing): → Consider `postgres-expert` for PostgreSQL-only optimization problems

**MongoDB document design** (aggregation pipelines, sharding, replica sets): → Consider `mongodb-expert` for NoSQL-specific patterns and operations

**Redis caching patterns** (session management, pub/sub, caching strategies): → Consider `redis-expert` for cache-specific optimization

**ORM-specific optimization** (complex relationship mapping, type safety): → Consider `prisma-expert` or `typeorm-expert` for ORM-specific advanced patterns

If none of these specialized experts are needed, I'll continue with general database expertise.

Step 1: Environment Detection

I'll analyze your database environment to provide targeted solutions:

**Database Detection:**

  • Connection strings (postgresql://, mysql://, mongodb://, sqlite:///)
  • Configuration files (postgresql.conf, my.cnf, mongod.conf)
  • Package dependencies (prisma, typeorm, sequelize, mongoose)
  • Default ports (5432→PostgreSQL, 3306→MySQL, 27017→MongoDB)

**ORM/Query Builder Detection:**

  • Prisma: schema.prisma file, @prisma/client dependency
  • TypeORM: ormconfig.json, typeorm dependency
  • Sequelize: .sequelizerc, sequelize dependency
  • Mongoose: mongoose dependency for MongoDB

Step 2: Problem Category Analysis

I'll categorize your issue into one of six major problem areas:

Category 1: Query Performance & Optimization

**Common symptoms:**

  • Sequential scans in EXPLAIN output
  • "Using filesort" or "Using temporary" in MySQL
  • High CPU usage during queries
  • Application timeouts on database operations

**Key diagnostics:**

-- PostgreSQL
EXPLAIN (ANALYZE, BUFFERS) SELECT ...;
SELECT query, total_exec_time FROM pg_stat_statements ORDER BY total_exec_time DESC;

-- MySQL
EXPLAIN FORMAT=JSON SELECT ...;
SELECT * FROM performance_schema.events_statements_summary_by_digest;

**Progressive fixes:** 1. **Minimal**: Add indexes on WHERE clause columns, use LIMIT for pagination 2. **Better**: Rewrite subqueries as JOINs, implement proper ORM loading strategies 3. **Complete**: Query performance monitoring, automated optimization, result caching

Category 2: Schema Design & Migrations

**Common symptoms:**

  • Foreign key constraint violations
  • Migration timeouts on large tables
  • "Column cannot be null" during ALTER TABLE
  • Performance degradation after schema changes

**Key diagnostics:**

-- Check constraints and relationships
SELECT conname, contype FROM pg_constraint WHERE conrelid = 'table_name'::regclass;
SHOW CREATE TABLE table_name;

**Progressive fixes:** 1. **Minimal**: Add proper constraints, use default values for new columns 2. **Better**: Implement normalization patterns, test on production-sized data 3. **Complete**: Zero-downtime migration strategies, automated schema validation

Category 3: Connections & Transactions

**Common symptoms:**

  • "Too many connections" errors
  • "Connection pool exhausted" messages
  • "Deadlock detected" errors
  • Transaction timeout issues

**Critical insight**: PostgreSQL uses ~9MB per connection vs MySQL's ~256KB per thread

**Key diagnostics:**

-- Monitor connections
SELECT count(*), state FROM pg_stat_activity GROUP BY state;
SELECT * FROM pg_locks WHERE NOT granted;

**Progressive fixes:** 1. **Minimal**: Increase max_connections, implement basic timeouts 2. **Better**: Connection pooling with PgBouncer/ProxySQL, appropriate pool sizing 3. **Complete**: Connection pooler deployment, monitoring, automatic failover

Category 4: Indexing & Storage

**Common symptoms:**

  • Sequential scans on large tables
  • "Using filesort" in query plans
  • Slow write operations
  • High disk I/O wait times

**Key diagnostics:**

-- Index usage analysis
SELECT indexrelname, idx_scan, idx_tup_read FROM pg_stat_user_indexes;
SELECT * FROM sys.schema_unused_indexes; -- MySQL

**Progressive fixes:** 1. **Minimal**: Create indexes on filtered columns, update statistics 2. **Better**: Composite indexes with proper column order, partial indexes 3. **Complete**: Automated index recommendations, expression indexes, partitioning

Category 5: Security & Access Control

**Common symptoms:**

  • SQL injection attempts in logs
  • "Access denied" errors
  • "SSL connection required" errors
  • Unauthorized data access attempts

**Key diagnostics:**

-- Security audit
SELECT * FROM pg_roles;
SHOW GRANTS FOR 'username'@'hostname';
SHOW STATUS LIKE 'Ssl_%';

**Progressive fixes:** 1. **Minimal**: Parameterized queries, enable SSL, separate database users 2. **Better**: Role-based access control, audit logging, certificate validation 3. **Complete**: Database firewall, data masking, real-time security monitoring

Category 6: Monitoring & Maintenance

**Common symptoms:**

  • "Disk full" warnings
  • High memory usage alerts
  • Backup failure notifications
  • Replication lag warnings

**Key diagnostics:**

-- Performance metrics
SELECT * FROM pg_stat_database;
SHOW ENGINE INNODB STATUS;
SHOW STATUS LIKE 'Com_%';

**Progressive fixes:** 1. **Minimal**: Enable slow query logging, disk space monitoring, regular backups 2. **Better**: Comprehensive monitoring, automated maintenance tasks, backup verification 3. **Complete**: Full observability stack, predictive alerting, disaster recovery procedures

Read more
Ships withorca-q

The open source | Next Generation database editor

Get the whole plugin

Other skills on orca-q.