mysql

Use this skill to make safe, measurable MySQL/InnoDB changes.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "mysql" with this command: npx skills add wcygan/dotfiles/wcygan-dotfiles-mysql

MySQL

Use this skill to make safe, measurable MySQL/InnoDB changes.

Workflow

  • Define workload and constraints (read/write mix, latency target, data volume, MySQL version, hosting platform).

  • Read only the relevant reference files linked in each section below.

  • Propose the smallest change that can solve the problem, including trade-offs.

  • Validate with evidence (EXPLAIN , EXPLAIN ANALYZE , lock/connection metrics, and production-safe rollout steps).

  • For production changes, include rollback and post-deploy verification.

Schema Design

  • Prefer narrow, monotonic PKs (BIGINT UNSIGNED AUTO_INCREMENT ) for write-heavy OLTP tables.

  • Avoid random UUID values as clustered PKs; if external IDs are required, keep UUID in a secondary unique column.

  • Always utf8mb4 / utf8mb4_0900_ai_ci . Prefer NOT NULL , DATETIME over TIMESTAMP .

  • Lookup tables over ENUM . Normalize to 3NF; denormalize only for measured hot paths.

References:

  • primary-keys

  • data-types

  • character-sets

  • json-column-patterns

Indexing

  • Composite order: equality first, then range/sort (leftmost prefix rule).

  • Range predicates stop index usage for subsequent columns.

  • Secondary indexes include PK implicitly. Prefix indexes for long strings.

  • Audit via performance_schema — drop indexes with count_read = 0 .

References:

  • composite-indexes

  • covering-indexes

  • fulltext-indexes

  • index-maintenance

Partitioning

  • Partition time-series (>50M rows) or large tables (>100M rows). Plan early — retrofit = full rebuild.

  • Include partition column in every unique/PK. Always add a MAXVALUE catch-all.

References:

  • partitioning

Query Optimization

  • Check EXPLAIN — red flags: type: ALL , Using filesort , Using temporary .

  • Cursor pagination, not OFFSET . Avoid functions on indexed columns in WHERE .

  • Batch inserts (500–5000 rows). UNION ALL over UNION when dedup unnecessary.

References:

  • explain-analysis

  • query-optimization-pitfalls

  • n-plus-one

Transactions & Locking

  • Default: REPEATABLE READ (gap locks). Use READ COMMITTED for high contention.

  • Consistent row access order prevents deadlocks. Retry error 1213 with backoff.

  • Do I/O outside transactions. Use SELECT ... FOR UPDATE sparingly.

References:

  • isolation-levels

  • deadlocks

  • row-locking-gotchas

Operations

  • Use online DDL (ALGORITHM=INPLACE ) when possible; test on replicas first.

  • Tune connection pooling — avoid max_connections exhaustion under load.

  • Monitor replication lag; avoid stale reads from replicas during writes.

References:

  • online-ddl

  • connection-management

  • replication-lag

Guardrails

  • Prefer measured evidence over blanket rules of thumb.

  • Note MySQL-version-specific behavior when giving advice.

  • Ask for explicit human approval before destructive data operations (drops/deletes/truncates).

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ux-review

No summary provided by upstream source.

Repository SourceNeeds Review
General

business-review

No summary provided by upstream source.

Repository SourceNeeds Review
General

zellij-guide

No summary provided by upstream source.

Repository SourceNeeds Review
General

api-workshop

No summary provided by upstream source.

Repository SourceNeeds Review