MySQL NDB Cluster

active

by Oracle Corporation · since 2004 · also known as MySQL Cluster, NDB, NDBCLUSTER

Shared-nothing, auto-sharded in-memory MySQL engine built for telecom-grade availability.

relationalkey-valuedatabase engineopen source (copyleft)mature

Overview

MySQL NDB Cluster pairs MySQL Server front ends with NDB, a distributed shared-nothing storage engine originally built at Ericsson for telecom subscriber databases. Data is automatically partitioned across data nodes and synchronously replicated within node groups, giving five-nines availability, online scaling and sub-millisecond primary-key access, with disk-backed tables for colder data. Beyond SQL it exposes NoSQL-style APIs (NDB API, ClusterJ, Node.js adapter) that bypass the SQL layer. It shines for HLR/5G, gaming and session state, but its join performance, operational complexity and differences from InnoDB make it a specialist tool.

Strengths & trade-offs

Strengths

  • +Automatic sharding and synchronous replication with no single point of failure
  • +Sub-millisecond primary-key reads and writes from memory
  • +Online add-node, rolling upgrades and online schema changes
  • +Direct NDB API access for millions of ops/sec without SQL parsing
  • +Multi-cluster geo-replication with conflict resolution

Trade-offs

  • −Joins and range scans across data nodes are much slower than InnoDB
  • −Different semantics from InnoDB (READ COMMITTED only, size limits per row)
  • −Operationally complex: management, data and SQL nodes to size and tune
  • −Memory-resident by default, so large datasets get expensive

Great for

  • +Telecom subscriber databases (HLR, HSS, 5G UDM)
  • +Online gaming player state
  • +Session and user-profile stores needing five-nines uptime
  • +Payment authorization with strict availability SLAs

Think twice for

  • −Join-heavy reporting queries
  • −Applications relying on InnoDB-specific behavior
  • −Small teams without dedicated DBA time

Capabilities

Native or official first-party support · 13 of 25 tracked

✓Transactions
✓Joins
✓Secondary indexes
✓JSON
✓Change data capture
✓Triggers
✓Stored procedures
✓In-memory
✓Durable persistence
✓Compression
✓Encryption at rest
✓Role-based access
✓Online schema changes
–Full-text search
–Vector search
–Geospatial
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–Time travel
–Branching
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Medium · ≤ 10 TB
Horizontal scaling
Native
Multi-region
Active active
Transactions
Full ACID
Consistency
Strong
Schema
Strict
Architecture
Distributed, In memory, Client server
Query languages
SQL

Up to 144 data nodes; automatic sharding by primary key hash. Geo-replication between clusters with conflict detection.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

compatible withMySQL
apis & protocolsMySQL client/server protocol, NDB API (C++), ClusterJ (Java), MGM API
client languagesC++, Java, JavaScript, C, Python, PHP

Alternatives to MySQL NDB Cluster

Compare all→
MySQLRelational82.3

The web's default open-source SQL database, now on calendar versioning with 9.7 as the LTS line.

mysql-ndb-cluster vs mysql →
Galera ClusterRelational10.0

Synchronous multi-primary replication for MySQL and MariaDB, now owned by MariaDB plc.

mysql-ndb-cluster vs galera-cluster →
Percona XtraDB ClusterRelational10.3

Percona Server plus Galera synchronous replication, packaged as an open-source HA MySQL cluster.

mysql-ndb-cluster vs percona-xtradb-cluster →
TiDBRelational35.9

MySQL-compatible distributed SQL with a row store for OLTP and a columnar replica for real-time analytics.

mysql-ndb-cluster vs tidb →
VitessRelational21.2

CNCF-graduated sharding and clustering layer that makes a fleet of MySQL servers look like one database.

mysql-ndb-cluster vs vitess →
Volt Active Data (VoltDB)Relational20.7

In-memory, partitioned SQL engine running Java stored procedures serially for millisecond decisioning.

mysql-ndb-cluster vs volt-active-data →

MySQL NDB Cluster FAQ

What is MySQL NDB Cluster?

MySQL NDB Cluster is a relational database by Oracle Corporation, first released in 2004. MySQL NDB Cluster pairs MySQL Server front ends with NDB, a distributed shared-nothing storage engine originally built at Ericsson for telecom subscriber databases. Data is automatically partitioned across data nodes and synchronously replicated within node groups, giving five-nines availability, online scaling and sub-millisecond primary-key access, with disk-backed tables for colder data. Beyond SQL it exposes NoSQL-style APIs (NDB API, ClusterJ, Node.js adapter) that bypass the SQL layer. It shines for HLR/5G, gaming and session state, but its join performance, operational complexity and differences from InnoDB make it a specialist tool.

Is MySQL NDB Cluster open source?

Yes. MySQL NDB Cluster is open source. License: GPL-2.0 (Community) / commercial (CGE).

Does MySQL NDB Cluster support ACID transactions?

Yes. MySQL NDB Cluster supports full ACID transactions, with strong consistency.

Does MySQL NDB Cluster scale horizontally?

MySQL NDB Cluster scales horizontally out of the box, with built-in sharding or partitioning. It is comfortable at medium scale (≤ 10 TB). It supports active-active multi-region writes.

How can I run MySQL NDB Cluster?

You can self-host it.

What is MySQL NDB Cluster best for?

MySQL NDB Cluster is a strong fit for telecom subscriber databases (HLR, HSS, 5G UDM); online gaming player state; and session and user-profile stores needing five-nines uptime. Think twice for join-heavy reporting queries.

What are the best alternatives to MySQL NDB Cluster?

Common alternatives to MySQL NDB Cluster include MySQL, Galera Cluster, Percona XtraDB Cluster, TiDB and Vitess. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is MySQL NDB Cluster?

MySQL NDB Cluster ranks #283 of 844 databases on the WhichDB Score (11.4/100), and #90 among relational databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.