MySQL is the world's most popular open-source relational database, powering the majority of web applications from startups to Facebook, YouTube, and Netflix. In this MySQL review, we examine how the Oracle-owned database maintains its dominance despite growing competition from PostgreSQL and cloud-native alternatives.
Overview
MySQL (mysql.com) was created by Michael Widenius and David Axmark in 1995, acquired by Sun Microsystems in 2008, and then by Oracle in 2010. It remains the most deployed database in the world — Stack Overflow's 2024 survey shows MySQL as the most used database among professional developers. MySQL powers Facebook (now Meta), YouTube, Twitter/X, Netflix, Uber, Airbnb, and millions of smaller applications.
MySQL 8.0 (current major version) added significant features: Common Table Expressions (CTEs), window functions, JSON improvements, invisible indexes, descending indexes, and the new MySQL Shell. MySQL HeatWave, launched in 2020, adds in-database analytics and machine learning capabilities, positioning MySQL as a combined OLTP+OLAP solution.
MariaDB, created by MySQL's original author after the Oracle acquisition, is a community-maintained fork that's wire-compatible with MySQL but diverges increasingly in features and storage engines.
Key Features and Architecture
InnoDB Storage Engine
The default storage engine providing ACID-compliant transactions, row-level locking, foreign key constraints, and crash recovery. InnoDB's buffer pool caches frequently accessed data in memory for fast reads, and its write-ahead log ensures durability. InnoDB handles the vast majority of MySQL workloads.
Replication and High Availability
MySQL supports multiple replication topologies: asynchronous replication, semi-synchronous replication, and Group Replication (multi-primary). InnoDB Cluster provides an integrated high-availability solution with automatic failover, and MySQL Router handles connection routing. These features enable 99.99%+ uptime for production deployments.
JSON Support
MySQL 8.0 provides native JSON data type with functions for creating, querying, and modifying JSON documents. While not as powerful as PostgreSQL's JSONB (no GIN indexing), MySQL's JSON support handles common document storage needs within a relational database.
MySQL HeatWave
An in-database query accelerator that runs analytics and ML directly on MySQL data without ETL. HeatWave claims 6,500x faster analytics than MySQL alone and 7x faster than Amazon Redshift for TPC-H benchmarks. Available on OCI, AWS, and Azure.
Performance Schema and Monitoring
Built-in instrumentation for monitoring query performance, lock contention, memory usage, and I/O operations. The Performance Schema provides detailed metrics without external monitoring tools, and the sys schema offers human-readable views of performance data.
MySQL Shell
A modern command-line client supporting SQL, JavaScript, and Python scripting. MySQL Shell provides utilities for data import/export, schema management, and cluster administration — replacing the legacy mysql command-line client.
Ideal Use Cases
Web Application Backends
The primary use case: MySQL powers the backend of most web applications built with PHP (WordPress, Laravel, Drupal), Python (Django), Ruby (Rails), Node.js, and Java. The LAMP stack (Linux, Apache, MySQL, PHP) remains one of the most common web architectures.
E-Commerce Platforms
Online stores running Magento, WooCommerce, Shopify (historically), and custom e-commerce platforms use MySQL for product catalogs, order management, and customer data. InnoDB's transactional guarantees ensure order integrity.
Content Management Systems
WordPress (43% of all websites) runs on MySQL. Drupal, Joomla, and most PHP-based CMS platforms use MySQL as their default database. The combination of MySQL + PHP powers the majority of the web's content.
SaaS Application Data
Multi-tenant SaaS applications use MySQL for user data, application state, and transactional records. MySQL's replication and partitioning features support the scaling needs of growing SaaS products.
Pricing and Licensing
MySQL offers open-source and commercial options:
| Option | Cost | Features |
|---|---|---|
| MySQL Community (GPL) | $0 | Full database, InnoDB, replication, JSON, Performance Schema |
| MySQL Standard | $2,000/year/server | Oracle support, MySQL Enterprise Monitor |
| MySQL Enterprise | $5,000/year/server | Backup, firewall, audit, encryption, Thread Pool |
| MySQL Cluster CGE | $10,000/year/server | NDB Cluster for real-time, high-availability |
| MySQL HeatWave (OCI) | From $0.0944/hour | In-database analytics and ML |
| AWS RDS MySQL | From $0.017/hour (~$12/month) | Managed MySQL on AWS |
| PlanetScale | From $39/month | Serverless MySQL with branching |
For comparison: PostgreSQL is completely free with no commercial tiers, MariaDB is free (GPL/BSL), Amazon Aurora MySQL starts at $0.10/ACU-hour, and PlanetScale provides serverless MySQL from $39/month. MySQL Community Edition is free and sufficient for most applications.
Pros and Cons
Pros
- Most widely deployed database — massive community, extensive documentation, every hosting provider supports it, every framework has a MySQL driver
- Battle-tested reliability — powers Facebook, YouTube, Netflix; decades of production hardening
- InnoDB performance — excellent OLTP performance with row-level locking, buffer pool caching, and crash recovery
- Easy to learn — straightforward SQL, simple administration, abundant tutorials and Stack Overflow answers
- Replication options — async, semi-sync, Group Replication, and InnoDB Cluster for high availability
- MySQL HeatWave — adds analytics and ML without ETL; competitive performance claims
Cons
- Oracle ownership — creates licensing uncertainty and community trust issues; many teams migrating to PostgreSQL or MariaDB
- Weaker than PostgreSQL for advanced features — no native JSONB indexing, fewer extensions, less SQL standards compliance, no native partitioning of JSON
- No native JSONB equivalent — JSON support exists but lacks PostgreSQL's GIN indexing and advanced operators
- Limited extension ecosystem — PostgreSQL has PostGIS, pg_vector, TimescaleDB, Citus; MySQL has fewer comparable extensions
- Commercial features locked — Enterprise Monitor, backup, firewall, and audit require paid Oracle licenses
Alternatives and How It Compares
PostgreSQL
PostgreSQL is MySQL's primary competitor — a more feature-rich, standards-compliant relational database with JSONB, extensions (PostGIS, pg_vector), and no corporate ownership concerns. PostgreSQL is technically superior for most new projects; MySQL has a larger installed base and simpler learning curve. The industry trend is toward PostgreSQL for new applications.
MariaDB
MariaDB is the community fork of MySQL, created by MySQL's original author. It's wire-compatible with MySQL but adds features like columnar storage (ColumnStore), temporal tables, and the Aria storage engine. MariaDB for teams that want MySQL compatibility without Oracle; MySQL for Oracle support and HeatWave.
Amazon Aurora MySQL
Aurora is AWS's MySQL-compatible database with 5x throughput improvement, automatic storage scaling, and multi-AZ replication. Aurora for AWS-native teams wanting managed MySQL with better performance; standard MySQL for portability and cost control.
PlanetScale
PlanetScale provides serverless MySQL with database branching (like Git branches for schemas), automatic scaling, and Vitess-based sharding. PlanetScale for modern MySQL with developer experience; standard MySQL for simplicity and self-hosting.
Frequently Asked Questions
Is MySQL free?
Yes, MySQL Community Edition is free under the GPL license. Commercial editions (Standard, Enterprise) start at $2,000/year/server for Oracle support and enterprise features.
Is MySQL better than PostgreSQL?
PostgreSQL is more feature-rich (JSONB, extensions, standards compliance). MySQL is simpler, more widely deployed, and has better replication options. PostgreSQL for new projects; MySQL if you have existing MySQL infrastructure.
Who owns MySQL?
Oracle Corporation acquired MySQL through the Sun Microsystems acquisition in 2010. MariaDB is the community fork created by MySQL's original author in response to the Oracle acquisition.