MySQL NDB 集群:功能与优势
性能与可扩展性 | |
自动分区(分片) | 数据库会自动且透明地跨低成本通用节点进行分区,从而允许读写查询的横向扩展,而无需对应用程序进行任何更改。 |
多主复制 | 每个数据节点都可以接受写操作。与自动分片相结合,这带来了极高的写可扩展性。 |
分布式跨分区 JOIN | 集群直接在分布式数据分区上执行联接和过滤条件,这些条件在本地和并行地执行在数据节点上。它提供了对整个分布式数据集的一致事务视图。 |
分布式并行查询 | 查询会在所有节点上的所有分区上并行运行,甚至在每个本地数据节点上并行执行,以实现最佳性能。点选择和主键查找会透明地路由到正确节点上的正确分区。 |
实时响应 | 使用内存表和索引、异步检查点到磁盘和线程到 CPU 的绑定实现低延迟 |
开发者 API 和数据模型 | |
SQL | MySQL 服务器向集群提供标准 SQL 接口,通过所有标准的 MySQL 连接器(用于 Web 开发语言和框架,JDBC、ODBC。NET 等)提供连接。 |
使用 Memcached 的 NoSQL | 原生键值访问,绕过 SQL 层,适用于 Web 服务,用于模式化和无模式数据存储 |
使用 JavaScript & node.js 的 NoSQL | 原生 JavaScript 访问,绕过 SQL 层,适用于高并发、社交和移动服务 |
使用 C++ 的 NoSQL | 原生 C++ 访问,绕过 SQL 层,适用于超低延迟 |
使用 Java、JPA 的 NoSQL | 原生 Java & JPA 访问,绕过 SQL 层,适用于企业、Web 和电信服务 |
使用 REST 的 NoSQL | 原生 HTTP/REST 访问,使用 Apache mod_ndb 绕过 SQL 层 |
模式化和无模式数据模型 | 默认情况下,完全结构化的关系数据模型。使用 Memcached API,每个键值都会写入同一个表,默认情况下每个键值对存储在一行中;也可以配置为写入多个现有表。 |
99.999% 的可用性和数据完整性 | |
符合 ACID、事务性 | MySQL NDB 集群提供完整的 ACID(原子性、一致性、隔离性和持久性)事务支持。 |
外键约束 | MySQL NDB 集群会自动在表之间强制实施参照完整性。 |
分布式、无共享架构 | 集群中的每个节点都是冗余的,可以位于不同的主机上,以确保在出现进程、硬件或网络故障时持续可用。 |
没有单点故障 | 每个节点都有自己的磁盘和内存,因此消除了由共享组件(如存储)导致的故障风险。 |
同步复制 | 每个数据节点中的数据都会同步复制到至少另一个数据节点。如果一个数据节点发生故障,那么始终至少存在另一个数据节点存储相同的信息。 |
自动亚秒级故障转移 | MySQL NDB 集群的心跳机制会立即检测到任何故障,并在通常不到一秒的时间内自动故障转移到集群中的其他节点,而不会中断对客户端的服务。 |
自愈恢复 | 发生故障的节点能够通过自动重启并与其他节点重新同步(在重新加入集群之前)进行自我修复,并且对应用程序完全透明。 |
地理复制 | 将集群从一个数据中心复制到另一个数据中心,从而实现灾难恢复并减少网络延迟的影响。每个集群都可以接受写操作,并具有内部冲突处理功能,以确保集群之间的一致性。 |
多站点集群 | 数据节点可以跨数据中心进行拆分,从而允许在站点之间进行同步复制,并在出现节点故障时自动进行故障转移。 |
在线操作 | |
在线模式下更新架构 | 支持在线添加列和表,以及添加或删除索引 |
在线模式下扩展 | 可以根据需要将节点添加到正在运行的集群中,以扩展容量和性能。为了实现弹性,应用程序节点可以动态地添加到集群中或从集群中删除。 |
在线模式下维护 | 支持升级或修补底层硬件、操作系统和 MySQL NDB 集群进程 |
在线备份 | 备份是数据库的一致集群范围快照,可以归档并复制到安全、远程的位置。 |
部署灵活性 | |
云基础设施 | 在通用硬件和云基础设施上的 Docker 和虚拟化环境中进行部署。 |
内存表和磁盘表 | 可以将表配置为完全在内存中管理(具有完整的日志记录和检查点到持久存储以实现持久性)或存储在磁盘上。 |
通用硬件 | MySQL NDB 集群针对在具有本地存储的通用硬件上进行横向扩展进行了优化。不需要共享磁盘。 |
安全性和审计 | |
MySQL 企业版身份验证* | 为连接到集群的 MySQL 服务器提供现成的外部身份验证模块,使它们能够轻松地与现有安全基础设施集成。 |
MySQL 企业版防火墙* | MySQL 企业版防火墙通过提供针对数据库特定攻击(如 SQL 注入)的实时保护来抵御网络安全威胁。 |
MySQL 企业版审计* | 提供易于使用的基于策略的审计解决方案,帮助组织实施更强大的安全控制措施并满足监管合规要求。 |
管理和监控 | |
MySQL NDB 集群管理器* | MySQL NDB 集群管理器通过自动执行常见管理任务来简化 MySQL NDB 集群数据库的创建和管理。 |
MySQL 企业版监控* | 提供对集群健康状况一目了然的视图,并在潜在问题影响系统之前发出警报。 |
* 仅在 MySQL NDB 集群运营级版本中提供