MySQL relational database. Covers queries, indexes, and optimization. Use when working with MySQL databases. USE WHEN: user mentions "mysql", "mariadb", asks about "AUTO_INCREMENT", "ON DUPLICATE KEY UPDATE", "GROUP_CONCAT", "mysql specific syntax" DO NOT USE FOR: PostgreSQL - use `postgresql` instead, MongoDB - use `mongodb` instead, Oracle - use `oracle` instead, SQL Server - use `sqlserver` instead

GitHub
Install command
npx skhub add claude-dev-suite/mysql
Markdown
SKILL.md

MySQL Core Knowledge

Deep Knowledge: Use mcp__documentation__fetch_docs with technology: mysql for comprehensive documentation.

Table Definition

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE,
    INDEX idx_email (email),
    INDEX idx_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Common Queries

-- Pagination
SELECT * FROM users
WHERE is_active = TRUE
ORDER BY created_at DESC
LIMIT 20 OFFSET 0;

-- Join
SELECT u.*, COUNT(p.id) as post_count
FROM users u
LEFT JOIN posts p ON p.user_id = u.id
GROUP BY u.id;

-- Upsert
INSERT INTO users (email, name)
VALUES (?, ?)
ON DUPLICATE KEY UPDATE name = VALUES(name);

Key Differences from PostgreSQL

FeatureMySQLPostgreSQL
Auto IDAUTO_INCREMENTSERIAL
BooleanTINYINT(1)BOOLEAN
UpsertON DUPLICATE KEYON CONFLICT
JSONJSONJSONB (indexed)

When NOT to Use This Skill

  • PostgreSQL-specific features - Use postgresql skill for JSONB, arrays, window functions
  • NoSQL operations - Use mongodb or redis skills for document/key-value stores
  • Oracle database - Use oracle skill for Oracle-specific features
  • SQL Server - Use sqlserver skill for T-SQL and SQL Server features
  • ORM abstractions - Use framework-specific skills (Prisma, TypeORM, Sequelize)

Anti-Patterns

Anti-PatternIssueSolution
SELECT * in productionTransfers unnecessary data, performance impactSpecify needed columns explicitly
Missing WHERE on UPDATE/DELETEModifies all rows unintentionallyAlways include WHERE clause
Missing indexes on JOIN/WHERE columnsFull table scans, slow queriesAdd indexes on frequently queried columns
MyISAM for transactional dataNo transaction support, table-level lockingUse InnoDB engine
LIKE '%pattern'Cannot use index, full scanUse LIKE 'pattern%' or fulltext search
Missing LIMIT on large tablesCan crash applicationAlways paginate results
Using ENUM for frequently changing valuesRequires ALTER TABLE to add valuesUse lookup table instead
Missing foreign keysData integrity issuesDefine proper FK constraints
N+1 query problemOne query per row in loopUse JOINs or batch queries
Not using prepared statementsSQL injection risk, slower performanceUse parameterized queries

Quick Troubleshooting

ProblemDiagnosticFix
Slow queriesEXPLAIN SELECT ...Add indexes, rewrite query, analyze execution plan
High CPU usageSHOW PROCESSLIST to find slow queriesOptimize top queries, add indexes
Connection limit reachedSHOW STATUS LIKE 'Threads_connected'Increase max_connections, use connection pooling
Lock wait timeoutCheck SHOW ENGINE INNODB STATUSReduce transaction time, optimize queries
Disk space fullSELECT table_schema, SUM(data_length+index_length) FROM information_schema.tables GROUP BY 1Archive old data, optimize tables
Replication lagSHOW SLAVE STATUSIncrease resources, tune binlog settings
Table corruptionCHECK TABLE table_nameRun REPAIR TABLE or restore from backup
DeadlocksCheck error log and SHOW ENGINE INNODB STATUSReduce transaction scope, access tables in same order

Reference Documentation

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/databases/mysql

Default branch

main

Latest commit

9496306

Tree SHA

fe4e2f1