21.2.6.1 Differences Between the NDB and InnoDB Storage Engines (original) (raw)
21.2.6.1 Differences Between the NDB and InnoDB Storage Engines
The NDB storage engine is implemented using a distributed, shared-nothing architecture, which causes it to behave differently fromInnoDB in a number of ways. For those unaccustomed to working withNDB, unexpected behaviors can arise due to its distributed nature with regard to transactions, foreign keys, table limits, and other characteristics. These are shown in the following table:
Table 21.1 Differences between InnoDB and NDB storage engines
Feature | InnoDB (MySQL 5.7) | NDB 7.5/7.6 |
---|---|---|
MySQL Server Version | 5.7 | 5.7 |
InnoDB Version | InnoDB 5.7.44 | InnoDB 5.7.44 |
NDB Cluster Version | N/A | NDB 7.5.36/7.6.34 |
Storage Limits | 64TB | 128TB (as of NDB 7.5.2) |
Foreign Keys | Yes | Yes |
Transactions | All standard types | READ COMMITTED |
MVCC | Yes | No |
Data Compression | Yes | No (NDB checkpoint and backup files can be compressed) |
Large Row Support (> 14K) | Supported for VARBINARY,VARCHAR,BLOB, andTEXT columns | Supported for BLOB andTEXT columns only (Using these types to store very large amounts of data can lower NDB performance) |
Replication Support | Asynchronous and semisynchronous replication using MySQL Replication; MySQL Group Replication | Automatic synchronous replication within an NDB Cluster; asynchronous replication between NDB Clusters, using MySQL Replication (Semisynchronous replication is not supported) |
Scaleout for Read Operations | Yes (MySQL Replication) | Yes (Automatic partitioning in NDB Cluster; NDB Cluster Replication) |
Scaleout for Write Operations | Requires application-level partitioning (sharding) | Yes (Automatic partitioning in NDB Cluster is transparent to applications) |
High Availability (HA) | Built-in, from InnoDB cluster | Yes (Designed for 99.999% uptime) |
Node Failure Recovery and Failover | From MySQL Group Replication | Automatic (Key element in NDB architecture) |
Time for Node Failure Recovery | 30 seconds or longer | Typically < 1 second |
Real-Time Performance | No | Yes |
In-Memory Tables | No | Yes (Some data can optionally be stored on disk; both in-memory and disk data storage are durable) |
NoSQL Access to Storage Engine | Yes | Yes (Multiple APIs, including Memcached, Node.js/JavaScript, Java, JPA, C++, and HTTP/REST) |
Concurrent and Parallel Writes | Yes | Up to 48 writers, optimized for concurrent writes |
Conflict Detection and Resolution (Multiple Replication Surces) | Yes (MySQL Group Replication) | Yes |
Hash Indexes | No | Yes |
Online Addition of Nodes | Read/write replicas using MySQL Group Replication | Yes (all node types) |
Online Upgrades | Yes (using replication) | Yes |
Online Schema Modifications | Yes, as part of MySQL 5.7 | Yes |