This post is maintained by Bytebase, an open-source database governance platform that can manage both MongoDB and MySQL. We update the post every year.
MySQL and MongoDB come from opposite ends of the database world. MySQL stores data in structured tables and is built around SQL, joins and transactions. MongoDB stores flexible JSON-like documents and was built to scale out across servers.
The gap is smaller than it used to be. MongoDB has had multi-document ACID transactions since 2018 and can enforce a schema if you ask it to. MySQL can read and write JSON documents on top of relational tables. This article compares where they still differ so you can pick the right fit.
MongoDB
MongoDB is a source-available, document-oriented NoSQL database. It was developed by MongoDB Inc. (formerly 10gen) and first released in 2009. The name comes from "humongous."
The current major release is MongoDB 9.0, released in September 2026 and supported until October 2031. Minor releases (8.2, 8.3) ship between majors.
MySQL
MySQL is an open-source relational database management system (RDBMS). It was developed by MySQL AB, first released in 1995, and has been owned by Oracle since 2010. The name combines "My", co-founder Michael Widenius's daughter, with "SQL."
MySQL now has two release tracks. MySQL 9.7 (April 2026) is the current Long-Term Support release. Innovation releases switched to calendar versioning with MySQL 26.7 (July 2026). MySQL 8.0, still the most widely deployed version, reached end of life in April 2026.
Comparison Table
| Feature | MongoDB | MySQL |
|---|---|---|
| Database Type | NoSQL (document) | SQL (relational) |
| Current Release | 9.0 (September 2026) | 9.7 LTS (April 2026), 26.7 Innovation (July 2026) |
| Data Model | Collections of BSON documents | Tables of rows and columns |
| Schema | Flexible by default, optional JSON Schema validation | Fixed schema, enforced on every write |
| Query Language | MongoDB Query Language (MQL) and aggregation pipeline | SQL |
| Transactions | Single-document atomic; multi-document ACID since 4.0 | Full ACID (InnoDB) |
| Scalability | Built-in sharding (scale out) | Scale up plus read replicas; sharding via Vitess or application |
| High Availability | Replica sets with automatic failover | Group Replication / InnoDB Cluster with automatic primary election |
| JSON | Native | JSON type, plus JSON Duality Views (9.7) |
| Vector Search | Built in, including Community Edition (GA 2026) | VECTOR type, no ANN index in the core server |
| License | SSPL (Community), commercial Enterprise Advanced | GPLv2 (Community), commercial Standard / Enterprise / Cluster CGE |
| Managed Service | MongoDB Atlas, plus authorized partners (Alibaba Cloud, Tencent Cloud) | Amazon RDS / Aurora, Cloud SQL, Azure, Oracle HeatWave, and many more |
| Use Cases | Content and catalogs, user profiles, event and IoT data, mobile backends | Transactional systems, e-commerce, CRM/ERP, reporting on related data |
Data Model
MongoDB (Document Model):
- Stores data as BSON (binary JSON) documents grouped into collections
- Documents can contain nested arrays and sub-documents
- Related data is often embedded in one document, so a single read returns the whole object
- Documents in the same collection can have different fields
MySQL (Relational Model):
- Stores data in tables with rows and columns of declared types
- Relationships are expressed with primary and foreign keys
- Data is usually normalized to avoid duplication
- Every row in a table has the same structure
The data model shapes everything else. If your application reads and writes whole objects, documents fit naturally. If it asks questions across many entities, tables and joins fit better.
Query Language
MongoDB (MQL):
- JSON-like filter syntax
- Aggregation pipeline for grouping, joins (
$lookup) and transformations - Operators for arrays, geospatial and full-text queries
- Not standardized; each document database has its own dialect
db.users.find({
city: "Tokyo",
lastPurchase: { $gt: ISODate("2026-01-01") },
});MySQL (SQL):
- SQL, the standard query language of relational databases
- Mature join, subquery, window function and CTE support
- A huge ecosystem of BI, reporting and ORM tools speaks it
SELECT * FROM users
WHERE city = 'Tokyo'
AND last_purchase > '2026-01-01';Choose MQL for JSON data workflows, SQL for relational reporting. Many modern apps use both!
Schema Design
MongoDB:
- No schema enforced by default. You add fields by writing them
- Optional JSON Schema validation per collection. MongoDB 9.0 adds a
constraintvalidation level that applies rules to every insert and update and guarantees existing documents already satisfy them - Fast iteration early on, but without validation you can end up with inconsistent documents that the application has to handle
MySQL:
- Strictly enforced schema with defined data types and constraints
- Schema changes are migrations (
ALTER TABLE). Many are instant or online in InnoDB, but large table rebuilds still need planning or tools like gh-ost - More upfront design, more data consistency guaranteed by the database
Either way, the schema still exists. MongoDB moves it into the application code and validators. MySQL keeps it in the database.
Scalability
MongoDB:
- Built for horizontal scaling via sharding: data is split across shards by a shard key, and the cluster balances chunks automatically
- Shard keys can be changed after the fact (resharding)
- Choosing a good shard key is the main design decision; a bad one creates hot shards
MySQL:
- Usually scales up first: a bigger server goes a long way
- Read replicas scale reads
- Writes beyond one primary need sharding, which MySQL does not do natively. Vitess (born at YouTube, used by PlanetScale and Slack) is the standard answer; application-level sharding is the other
- MySQL NDB Cluster is a separate engine for distributed, in-memory workloads
Performance
Performance depends far more on the access pattern and indexes than on the engine.
MongoDB:
- Fast when a request reads or writes one document that holds everything it needs
- Uses the WiredTiger storage engine with document-level concurrency
- MongoDB claims 9.0 is up to 35% faster on reads and 30% faster on updates than 8.0 in its own tests. The methodology was not published, so benchmark your own workload
$lookupjoins work, but are slower than a relational join on normalized data
MySQL:
- InnoDB is highly optimized for OLTP: point lookups, range scans, and joins across indexed tables
- Strong at complex queries that combine many tables
- The old query cache was removed in MySQL 8.0, so caching repeated queries is the application's or a proxy's job
- MySQL 9.7 brings the Hypergraph Optimizer to Community Edition for many-table joins. It is still experimental and off by default
Transactions and Consistency
MongoDB:
- Writes to a single document are always atomic, which covers most use cases when data is embedded
- Multi-document ACID transactions are supported on replica sets since 4.0 (2018) and on sharded clusters since 4.2 (2019)
- The default write concern is
majoritysince 5.0, so an acknowledged write survives a primary failover - Reads from the primary are strongly consistent. Reads from secondaries can be stale unless you use read concerns or causally consistent sessions
- Transactions have limits: a default 60-second lifetime, and in 9.0 a cap of 10,000 concurrently open transactions
MySQL:
- Full ACID with InnoDB, with row-level locking and MVCC
- Four isolation levels,
REPEATABLE READby default - Foreign keys enforce referential integrity in the database
- Decades of patterns and tooling for transaction-heavy workloads
Summary: both are ACID today. MySQL is still the more natural fit when most operations touch several related records at once.
JSON and Vector Search
MongoDB:
- JSON is the native format, so nested documents, arrays and partial updates are first class
- MongoDB Search and Vector Search became generally available for self-managed Community and Enterprise in mid-2026, after years of being Atlas-only
- MongoDB acquired Voyage AI in 2025 for its embedding and reranking models
MySQL:
- A native
JSONtype with functions and indexes on generated columns - JSON Duality Views (in Community since 9.7) let an application read and write JSON documents while MySQL stores normalized rows underneath
- A
VECTORdata type since MySQL 9.0, but no approximate-nearest-neighbor index in the core server. Vector search at scale means HeatWave or a separate vector store
Pricing and Licensing
MongoDB
- Community Edition: free under the Server Side Public License (SSPL) since October 2018. SSPL is not OSI-approved; it requires anyone offering MongoDB as a service to release their whole service stack's source
- Enterprise Advanced: commercial license, pricing through sales
- MongoDB Atlas: Free tier (512 MB storage), Flex (5 GB, from $0.011/hour, capped at $30/month), and Dedicated clusters starting at $56.94/month (M10)
MySQL
- Community Edition: free under GPLv2
- Commercial subscriptions per server per year (1β4 sockets, Oracle price list): Standard Edition $2,140, Enterprise Edition $5,350, Cluster Carrier Grade Edition $10,700. Enterprise adds features like Enterprise Backup, Audit, Firewall and data masking
- Managed MySQL is available from nearly every cloud (Amazon RDS and Aurora, Google Cloud SQL, Azure Database for MySQL, Oracle HeatWave, PlanetScale)
The license difference matters most for managed services. Because of SSPL, a cloud can only run current MongoDB as a service through a deal with MongoDB Inc. Atlas (on AWS, Google Cloud and Azure) is the main option, plus authorized partners such as Alibaba Cloud and Tencent Cloud. Amazon DocumentDB and Azure Cosmos DB offer MongoDB-compatible APIs, not MongoDB itself.
Community and Ecosystem
In the October 2026 DB-Engines ranking, MySQL is #2 and MongoDB #5 (the top-ranked NoSQL database). MySQL lost about 42 points year over year while MongoDB gained about 7. In the 2025 Stack Overflow survey, 40.5% of developers used MySQL and 24% used MongoDB.
MongoDB has official drivers for every major language and a strong position with JavaScript/Node.js developers. Its ecosystem is centered on MongoDB Inc. and Atlas.
MySQL has a three-decade community, forks (MariaDB, Percona Server), and support from nearly every ORM, BI tool, and hosting provider.
When to Choose MongoDB or MySQL
Choose MongoDB if:
- Your data is naturally document-shaped (catalogs, profiles, content, events) and is read as whole objects
- The structure changes often or varies between records
- You expect to need horizontal write scaling and want it built in
- You want search and vector search in the same database
Choose MySQL if:
- Your data is relational and your queries join across entities
- Multi-row transactions and referential integrity are core to the application (orders, payments, inventory)
- You want a permissive choice of hosting and the widest tooling support
- You need reporting and analytics in SQL
Many teams run both: MongoDB for flexible, user-facing data and MySQL for transactional records. With JSON in MySQL and transactions in MongoDB, the decision comes down to which data model matches your application, not which database "can" do it.