---
title: MySQL
slug: mysql
url: "https://toolweight.com/options/mysql"
homepage: "https://www.mysql.com"
categories: sqlite-vs-postgres-vs-mysql
last_verified: 2026-07-01
license: CC-BY-4.0
---

# MySQL

> The relational server that ran the early web, now Oracle-stewarded and InnoDB-based.

MySQL is a thread-per-connection relational server whose default InnoDB engine gives clustered primary-key storage, MVCC via undo logs and mature binary-log replication. Oracle ships it under GPLv2 with a commercial licence for redistribution, on an LTS plus innovation-release cadence. Its strengths are operational: online DDL on very large tables and replication topologies that have been run at extreme scale for two decades.

## Identity

|  |  |
| --- | --- |
| Name | MySQL |
| Company | Oracle |
| One-liner | The relational server that ran the early web, now Oracle-stewarded and InnoDB-based. |
| Site | https://www.mysql.com |
| Docs | https://dev.mysql.com/doc/refman/8.4/en/ |
| Repo | https://github.com/mysql/mysql-server |
| Founded | 1995 |
| Open source | Yes |
| Licence | GPL-2.0 or commercial |
| Brand | https://toolweight.com/vendors/MySQL |
| Compared in | 1 |

## Where it is compared

### [Database engines](https://toolweight.com/compare/sqlite-vs-postgres-vs-mysql)
| Field | Value | Confidence | Verified | Source | Note |
| --- | --- | --- | --- | --- | --- |
| Embedded or server | Server (client/server) | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/what-is-mysql.html | The libmysqld embedded server library was removed in 8.0; it is a server, full stop. |
| Concurrency model | MVCC (undo log) | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/innodb-multi-versioning.html | InnoDB keeps old versions in an undo log rather than the heap, so the failure mode is history-list growth, not table bloat. |
| Write concurrency | Concurrent writers (row-level) | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/innodb-locking.html | - |
| Isolation levels | Read uncommitted, Read committed, Repeatable read, Serializable | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/innodb-transaction-isolation-levels.html | Defaults to REPEATABLE READ, unlike Postgres. Code ported between the two changes behaviour silently unless you set it explicitly. |
| JSON support | Binary JSON type | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/json.html | A real JSON column type stored in a parsed binary format, with multi-valued indexes over arrays since 8.0.17. |
| Full-text search | Built-in | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/fulltext-search.html | FULLTEXT indexes on InnoDB with natural-language and boolean modes; the ngram parser covers CJK. |
| Vector search | Native type | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/9.0/en/vector.html | VECTOR type and distance functions since 9.0, but the approximate index is a HeatWave feature, the community server does exact scans. |
| Type strictness | Static, coercing | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/sql-mode.html | STRICT_TRANS_TABLES is on by default and has been since 5.7, but sql_mode is a runtime variable, so strictness is a configuration fact rather than an engine fact. |
| ALTER TABLE | Moderate | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/innodb-online-ddl-operations.html | Broad ALTER support with INSTANT and INPLACE algorithms. DDL is atomic and crash-safe since 8.0, but you cannot roll it back inside a transaction the way you can on Postgres. |
| Max database size | 64 TB | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/innodb-limits.html | 64 TiB per InnoDB tablespace at the default 16 kB page size. There is no documented limit on the number of tablespaces. |
| Replication | Built-in async + synchronous | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/replication.html | Asynchronous binary-log replication, a semi-synchronous plugin, and Group Replication for quorum writes and automatic failover. |
| PITR | ● | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/point-in-time-recovery.html | Full backup plus mysqlbinlog replay to a timestamp or GTID. Percona XtraBackup is the usual hot-backup tool in the open-source world. |
| Online schema change | ● | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/innodb-online-ddl.html | Native online DDL, plus gh-ost and pt-online-schema-change for the cases it cannot do. The strongest story on this page. |
| Connection model | Thread per connection | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/connection-interfaces.html | A thread per connection, so idle connections are far cheaper than on Postgres. A true thread pool is an Enterprise or Percona feature. |
| Default max conns | 151 | Vendor-claimed | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/server-system-variables.html | - |
| Managed options | Amazon RDS, Amazon Aurora, Google Cloud SQL, Azure Database, PlanetScale | Inferred | 2026-07-01 | - | - |
| Ops burden | 3 | Inferred | 2026-07-01 | - | A server with users, replicas and a binlog to keep an eye on, but no vacuum, and connection handling that forgives a sloppy pool. |
| Extension ecosystem | 2 | Inferred | 2026-07-01 | - | A component and plugin API exists, and pluggable storage engines are real, but there is nothing resembling the Postgres extension market. |
| Client libraries | 5 | Inferred | 2026-07-01 | - | - |
| Migration tooling | 4 | Inferred | 2026-07-01 | - | Flyway and Liquibase are first-class, and gh-ost plus pt-online-schema-change are battle-tested at a scale nothing on Postgres matches. |
| GitHub stars | 11,000 | Community-reported | 2026-07-01 | https://github.com/mysql/mysql-server | Approximate. Oracle publishes source drops to this mirror rather than developing in the open. |
| Positioning | The world's most popular open source database. | Vendor-claimed | 2026-07-01 | https://www.mysql.com/ | - |
| Licence | GPL-2.0 or commercial | Vendor-claimed | 2026-07-01 | https://www.mysql.com/about/legal/licensing/oem/ | - |
| Embed in closed source | ○ | Vendor-claimed | 2026-07-01 | https://www.mysql.com/about/legal/licensing/oem/ | GPLv2 unless you buy the commercial licence, which is precisely the product Oracle sells. The client library carries a FOSS Exception, the server does not. |
| Governance | Single vendor | Vendor-claimed | 2026-07-01 | https://www.mysql.com/about/ | Oracle owns the copyright, the roadmap and the release cadence. MariaDB exists because of this row. |
| First release | 1995-05-23 | Community-reported | 2026-07-01 | https://dev.mysql.com/doc/refman/8.4/en/history.html | First internal release; the first widely distributed public binaries followed in 1996. |

**Verdict.** Chosen far less often than it should be for the one thing it is genuinely best at: changing the schema of an enormous table while writes continue. The SQL surface is narrower than Postgres and the extension story is thin, but the operational path is extremely well worn.

## Alternatives

- [DuckDB](https://toolweight.com/options/duckdb), In-process columnar analytics engine, SQLite's shape, a warehouse's execution model.
- [MariaDB](https://toolweight.com/options/mariadb), GPL-only MySQL fork under a foundation, with Galera clustering and native vectors.
- [PostgreSQL](https://toolweight.com/options/postgresql), MVCC relational server with the widest SQL surface and a deep extension ecosystem.
- [SQLite](https://toolweight.com/options/sqlite), Embedded SQL engine that runs inside your process, a file, not a server.

## Licence and attribution

Data from toolweight (https://toolweight.com), licensed CC-BY-4.0.

- Licence: [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/)
- Canonical HTML: https://toolweight.com/options/mysql
- Machine-readable: https://toolweight.com/options/mysql.md · https://toolweight.com/api/v1 · https://toolweight.com/mcp
- toolweight takes no affiliate revenue and sells no placements. Corrections: https://toolweight.com/suggest
