NewSQL是一类关系数据库管理系统,旨在为在线事务处理工作负载提供NoSQL系统的可伸缩性,同时保持传统数据库系统的ACID保证,不仅具有NoSQL对海量数据的存储管理能力,保持传统数据库支持ACID和SQL等特性。
NewSQL 是一类关系数据库管理系统,是对各种新的可扩展/高性能数据库的简称,旨在为在线事务处理工作负载提供 NoSQL 系统的可伸缩性,同时保持传统数据库系统的 ACID 保证。这类数据库不仅具有 NoSQL 对海量数据的存储管理能力,还保持了传统数据库支持 ACID 和 SQL 等特性。许多处理高配置数据的企业系统对于传统的关系数据库而言太大,但具有对 NoSQL 系统不实用的事务和一致性要求。
NewSQL 系统采用各种内部架构。两个常见的区别特征是它们支持关系数据模型(包括 ACID 一致性)并使用 SQL 作为其主要接口。
NewSQL 系统可以松散地分为三类:
新架构
一些系统采用无共享节点的集群,其中每个节点管理数据的子集。它们包括分布式并发控制,流控制和分布式查询处理等组件。此类别中的示例系统包括 Amazon Aurora,Google Spanner,TiDB,CockroachDB,Altibase,Apache Ignite,GridGain,Clustrix,VoltDB,MemSQL,NuoDB,YugaByte DB 和 Trafodion。
SQL 引擎
第二类是优化存储引擎的 SQL。这些系统提供与 SQL 相同的编程接口,但比内置引擎(如 InnoDB)更好。示例包括 MySQL Cluster,Infobright,TokuDB,MyRocks,SQL Server(具有 ColumnStore 和 InMemory 功能)和 MariaDB Columnstore。
透明分片
这些系统提供了一个分片 中间件层,可以跨多个节点自动拆分数据库。例子是 ScaleBase 和 Vitess。
NoSQL 将改变数据的定义范围。它不再是原始的数据类型,如整数、浮点。数据可能是整个文件。NoSQL 可能会吓到 DBA,因为他们担心失去他们自己的领域。NoSQL 数据库是非关系的、水平可扩展、分布式并且是开源的。MongoDB 的创始人 Dwight Merriman 表示 NoSQL 可作为一个 Web 应用服务器、内容管理器、结构化的事件日志、移动应用程序的服务器端和文件存储的后备存储。