架构

分为管理阶段、SQL节点和数据节点。

数据组:每个数据组包含多个数据节点,组内数据节点的数据相同。不同组见的数据节点不同。同一个组内每个节点具有相同的分区。

NDB硬件要求

  • 多台电脑:多个节点也可部署在一台电脑上。
  • 网络:数据同步依赖于网络,最低100M网络,最好有独立的子网。
  • 内存:==所有数据存储在内存==,对内存要求较高

NDB限制

见官网文档

NDB与InnoDB

区别

功能

InnoDB 1.1

NDB Cluster NDB 7.5

MySQL Server Version

5.7

5.7

InnoDB 版本

InnoDB 5.7.18

InnoDB 5.7.18

NDB Cluster版本

N/A

NDB 7.5.6

数据量限制

64TB

3TB(Practical upper limit based on 48 data nodes with 64GB RAM each; can be increased with disk-based data and BLOBs)

外键支持



事物

所有标准类型

READ COMMITTED

MVCC



数据压缩


否(NDB Cluster checkpoint and backup files can be compressed)

大数据行支持 (> 14K)

支持 VARBINARY、VARCHAR、BLOB、TEXT列

只支持BLOB、TEXT列(大量使用将降低性能)

复制支持

基于MySQL Replication的异步和半同步复制

NDB Cluster自动同步复制,同时支持基于MySQL Replication的异步复制

读可扩展性

支持 (MySQL Replication)

支持 (Automatic partitioning in NDB Cluster ; NDB Cluster Replication)

写可扩展性

需要应用程序分区 (sharding)

支持(NDB Cluster自动分区)

高可用性

需要其他软件支持

支持 (为99.999%可用设计)

节点失效恢复

需要其他软件支持

自动(NDB Cluster架构的关键要素)

节点失效恢复时间

30秒或更长

典型情况下小于1秒

实时性能



内存表

否(内存数据不具有持久性)

是(以下数据可选择防止磁盘;内存和磁盘数据都具有持久性)

NoSQL访问存储引擎


是(支持多种协议,包括Memcached、 Node.js/JavaScript、Java、JPA、C++和 HTTP/REST)

并发和并行写

不支持

最多48同时写, 为concurrent writes优化

冲突检测和解决 (多主复制时)



Hash索引



在线添加节点

Read-only replicas using MySQL Replication

Yes (all node types)

在线升级



在线schma修改



使用场景

场景

InnoDB

NDB Cluster(NDB)

大容量OLTP应用



DSS应用 (数据集市、分析)


限制 (跨OLTP数据库连接操作不能大于3TB数据量)

Custom Applications



Packaged Applications


限制(应主要采用主键访问).NDB Cluster 7.5 开始支持外键.

In-Network Telecoms Applications (HLR, HSS, SDP)



会话管理和缓存



电子商务



User Profile Management, AAA Protocol



优劣比较

倾向使用InnoDB场景

倾向使用NDB场景

外键,注NDB7.5开始支持外键

写横向扩展

全表扫描

99.999%可用时间

很大的数据库\数据行\事物

在线添加节点和schema操作

需要READ COMMITTED外的事物支持

多SQL或NoSQL API需求

-

实时性能

-

有限的使用Blob列

-

7.5可以支持外键,虽然在高吞吐量下会有性能影响