Database Operations
MySQL Deadlock Debugging Guide
Read InnoDB deadlock evidence and transaction patterns before changing indexes or retry logic. This page is written as a practical engineering reference: it starts with evidence, keeps risky assumptions visible and links the next useful Formalint checks.
Use it when a ticket, incident or pull request needs a repeatable explanation rather than a quick guess. Keep secrets, customer data and production tokens out of browser tools and shared notes.
When this page is useful
- You need a small, shareable diagnostic sequence.
- You want to compare shell output, payload shape or parser behavior before changing code.
- You are preparing notes for another developer, DBA or support engineer.
Practical workflow
| Step | What to verify |
|---|---|
| Collect read-only evidence | Capture sessions, locks, plans, status counters or slow queries before changing database state. |
| Connect symptom to owner | Separate application pool pressure, query shape, indexes, storage and service configuration. |
| Document the safe fix | Keep the command, timestamp, result and rollback note with the incident record. |
Command or pattern to start with
SHOW ENGINE INNODB STATUS\GReview checklist
- Confirm the environment where the symptom happens.
- Use a redacted sample that is still realistic enough to reproduce the behavior.
- Keep request headers, payloads, logs and timestamps together.
- Change one variable at a time so the result stays explainable.
- Link the final note to a related Formalint reference for the next person.
Common mistake
The common trap is adding indexes or restarting services before collecting session, lock and plan evidence.
Formalint is strongest when it becomes part of the incident rhythm: reduce the sample, format the evidence, verify the assumption and only then change the system.
Related Formalint references
Continue with Dba Admin Roadmap, Postgresql Dba Checklist, Mysql Dba Checklist.
Frequently asked questions
Can I paste production data into this workflow?
No. Use redacted or synthetic examples. The workflow is about evidence order, not copying sensitive systems into a browser.
Is this a replacement for logs and tests?
No. Treat it as a field guide that helps you decide which logs, tests and commands matter first.