Database

MySQL

MySQL in production - InnoDB buffer pool, redo and undo, REPEATABLE READ and gap locks, GTIDs and Group Replication, and the 8.4 default changes.

Read the MySQL guide

Concepts it implements

MVCC

Readers see a consistent snapshot without blocking writers, because an update creates a new row version rather than overwriting the old one.

Isolation levels

The contract for which concurrency anomalies a transaction may observe, traded against how much concurrency the engine allows.

Replication lag

The delay between a write committing on the primary and becoming visible on a replica.

Write amplification

One logical write causes several physical writes - to the log, the data pages, and every affected index.

Schema

The structure that defines how data is organised in a database: tables, columns, data types, constraints, relationships, and indexes.

Normalisation

Organising tables so that each fact is stored once, reducing redundancy at the cost of more joins.

Index

A data structure maintained alongside a table that makes lookups by specific columns faster, at the cost of slower writes and additional storage.

Stored procedure

A named block of SQL (or procedural code) stored in the database and executed on the server, avoiding the round-trip cost of sending each statement from the application.

Primary key

A column or set of columns that uniquely identifies every row in a table, enforced by a unique index and a NOT NULL constraint.

Foreign key

A constraint that links a column in one table to the primary key of another, enforcing referential integrity so that orphan rows cannot exist.

Transaction

A sequence of operations that either all succeed (commit) or all fail (rollback), guaranteeing that the database moves from one consistent state to another.

Trigger

Code that the database executes automatically when a specific event occurs on a table - typically an INSERT, UPDATE, or DELETE.

View

A named query stored in the database that behaves like a virtual table - it does not hold data itself but runs its defining query each time it is read.

Where MySQL sits

How this component relates to the rest of the stack. Items without a link are not covered here yet.

Depends on

Must be present for this to run

Deployed with

Commonly run alongside

  • ProxySQL

Alternatives

Solves a similar problem differently

Used by

Builds on this

MySQL release support

2 supported
ReleaseLatestReleasedEnd of lifeStatus
9.7LTS9.7.2Apr 2026Apr 2034Supported
9.69.6.1Jan 2026Apr 2026End of life
9.59.5.2Oct 2025Jan 2026End of life
9.49.4.2Jul 2025Oct 2025End of life
9.39.3.2Apr 2025Jul 2025End of life
9.29.2.2Jan 2025Apr 2025End of life
9.19.1.2Oct 2024Jan 2025End of life
9.09.0.1Jul 2024Oct 2024End of life
8.4LTS8.4.11Apr 2024Apr 2032Supported
8.38.3.0Jan 2024Apr 2024End of life
8.28.2.0Oct 2023Jan 2024End of life
8.18.1.0Jul 2023Oct 2023End of life
8.0LTS8.0.46Apr 2018Apr 2026End of life
5.75.7.44Oct 2015Oct 2023End of life

Data as of 2026-10-01 from endoflife.date. Refresh with node scripts/fetch-versions.mjs.