56 results available
Sign in
Skills directory

mysql

planetscale

·

Last changed
Hardened

This skill has been hardened by Chainguard

Last changed

This version passed the hardening gate. Hardening updated the skill content and independently checked the resulting changes. Classified findings before hardening: 2. Classified findings closed: 0. Classified findings remaining: 2. Unclassified scanner findings remaining: 0. Review findings closed: 0. Review findings remaining: 14.


Open before hardening

1

Medium

1

Low
Open after hardening

1

Medium

1

Low

Expand
File
Group
Subtype
Severity
Status
references/online-ddl.md

Excessive Agency & Rogue Autonomy

—

Medium
Open
SKILL.md

Prompt Injection

Third-party content as instructions

Low
Open

2 findings


SKILL.md

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:

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:

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:

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:

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:

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:

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).

Install

Install with chainctl
chainctl skill install public/planetscale/mysql:latest
Get started with chainctl
View source

Harden your own skills

Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.

Provenance

Upstream sourcehttps://github.com/planetscale/database-skills
Upstream commit3fa574b476452c0075ea8a43f2002d53a9ccb31f
OCI reference

skills.cgr.dev/public/github.com/planetscale/skills/mysql:latest

License

MIT

Files

HARDENING.md

LICENSE

SKILL.md

references/character-sets.md

references/composite-indexes.md

references/connection-management.md

references/covering-indexes.md

references/data-types.md

references/deadlocks.md

references/explain-analysis.md

references/fulltext-indexes.md

references/index-maintenance.md

references/isolation-levels.md

references/json-column-patterns.md

references/n-plus-one.md

references/online-ddl.md

references/partitioning.md

references/primary-keys.md

references/query-optimization-pitfalls.md

references/replication-lag.md

references/row-locking-gotchas.md


The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.