Skip to main content

mysql

Plan and review MySQL/InnoDB schema, indexing, query tuning, transactions, and operations. Use when creating or modifying MySQL tables, indexes, or queries; diagnosing slow/locking behavior; planning migrations; or troubleshooting replication and connection issues. Load when using a MySQL database.

来源信息

仓库
PageAI-Pro/ralph-loop
最近来源活动
2026年2月23日 06:55
检测到的 SKILL.md 语言
英语
星标
311
分支
46

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
19 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
mysql
description
Plan and review MySQL/InnoDB schema, indexing, query tuning, transactions, and operations. Use when creating or modifying MySQL tables, indexes, or queries; diagnosing slow/locking behavior; planning migrations; or troubleshooting replication and connection issues. Load when using a MySQL database.
# MySQL Use this skill to make safe, measurable MySQL/InnoDB changes. ## Workflow 1. Define workload and constraints (read/write mix, latency target, data volume, MySQL version, hosting platform). 2. Read only the relevant reference files linked in each section below. 3. Propose the smallest change that can solve the problem, including trade-offs. 4. Validate with evidence (`EXPLAIN`, `EXPLAIN ANALYZE`, lock/connection metrics, and production-safe rollout steps). 5. 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](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/primary-keys.md) - [data-types](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/data-types.md) - [character-sets](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/character-sets.md) - [json-column-patterns](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/json-column-patterns.md) ## 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](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/composite-indexes.md) - [covering-indexes](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/covering-indexes.md) - [fulltext-indexes](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/fulltext-indexes.md) - [index-maintenance](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/index-maintenance.md) ## 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](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/partitioning.md) ## 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](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/explain-analysis.md) - [query-optimization-pitfalls](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/query-optimization-pitfalls.md) - [n-plus-one](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/n-plus-one.md) ## 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](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/isolation-levels.md) - [deadlocks](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/deadlocks.md) - [row-locking-gotchas](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/row-locking-gotchas.md) ## 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](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/online-ddl.md) - [connection-management](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/connection-management.md) - [replication-lag](https://raw.githubusercontent.com/planetscale/database-skills/main/skills/mysql/references/replication-lag.md) ## 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).
在 GitHub 查看