NewSQL初了解

NewSQL一词是由451 Group的分析师Matthew Aslett在研究论文中提出的。它代指对老牌数据库厂商做出挑战的一类新型数据库系统。NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACIDSQL等特性。

分布式数据库公司VoltDB的首席技术官Michael Stonebraker表示NoSQL数据库可提供良好的扩展性和灵活性,但他们也有自己的不足。由于不使用SQLNoSQL数据库系统不具备高度结构化查询等特性。NoSQL其他的问题还包括不能提供ACID(原子性、一致性、隔离性和耐久性)的操作。另外不同的NoSQL数据库都有自己的查询语言,这使得很难规范应用程序接口。Stonebraker表示数据库系统的滞后通常可归结于多项因素。诸如以恢复日志为目的的数据库系统维持的缓冲区池,以及管理锁定和锁定的数据字段。在VoltDB的测试中发现以上这些行为消耗系统96%的资源。

相对于NewSQL系统虽然在的内部结构变化很大,但是它们有两个显着的共同特点:(1)它们都支持关系数据模型(2) 它们都使用SQL作为其主要的接口。已知的第一个NewSQL系统叫做H-Store,它是一个分布式并行内存数据库系统。目前NewSQL系统大致分三类:

新架构

所述第一类型的NewSQL系统是完全新的数据库平台,它们均采取了不同的设计方法。它们大概分两类:

(1) 这类数据库工作在一个分布式集群的节点上,其中每个节点拥有一个数据子集。 SQL查询被分成查询片段发送给自己所在的数据的节点上执行。这些数据库可以通过添加额外的节点来线性扩展。现有的这类数据库有: Google SpannerVoltDB, Clustrix, NuoDB.

(2) 这些数据库系统通常有一个单一的主节点的数据源。它们有一组节点用来做事务处理,这些节点接到特定的SQL查询后,会把它所需的所有数据从主节点上取回来后执行SQL查询,再返回结果。

SQL引擎

第二类是高度优化的SQL存储引擎。这些系统提供了MySQL相同的编程接口,但扩展性比内置的引擎InnoDB更好。这类数据库系统有:TokuDB, MemSQL

透明分片

这类系统提供了分片的中间件层,数据库自动分割在多个节点运行。这类数据库包扩:ScaleBasedbShards, Scalearc

那么现有NewSQL系统厂商有哪些呢:

我们将包括 ( 顺序随机 )Clustrix GenieDB ScalArc Schooner VoltDB RethinkDB ScaleDB Akiban CodeFutures ScaleBase Translattice NimbusDB ,以及 Drizzle 、带有 NDB MySQL 集群和带有 HandlerSocket MySQL 。后者包括 Tokutek JustOne DB 。相关的 “NewSQL 作为一种服务 类别包括亚马逊关系数据库服务,微软 SQL Azure Xeround FathomDB

 


### NewSQL 数据库技术与特点 NewSQL 是一种数据库管理系统的技术分类,旨在结合传统关系型数据库(Relational Database)的事务一致性与 NoSQL 数据库的高扩展性和高性能[^1]。它通过创新的设计和技术手段,在不牺牲数据一致性和可靠性的前提下,实现了水平扩展和高性能查询的能力。 #### 1. **NewSQL 的定义** NewSQL 数据库是为满足现代互联网应用对高并发、大数据量的需求而设计的一类数据库系统。它保留了 SQL 作为查询语言的优势,并兼容 ACID 特性(原子性、一致性、隔离性和持久性),同时引入分布式架构以支持大规模数据处理[^2]。 #### 2. **NewSQL 的主要特点** - **SQL 兼容性** NewSQL 数据库支持标准的 SQL 查询语言,使得开发者可以继续使用熟悉的工具和接口进行开发,降低了迁移成本[^3]。 - **ACID 事务支持** 与 NoSQL 不同,NewSQL 数据库强调事务的一致性和可靠性,确保在高并发场景下的数据完整性[^4]。 - **水平扩展能力** NewSQL 数据库通常采用分布式架构,能够通过增加节点实现线性扩展,从而应对海量数据和高并发请求[^5]。 - **高性能** 利用内存计算、分布式存储等技术,NewSQL 数据库能够在保证数据一致性的前提下提供高效的读写性能[^6]。 #### 3. **NewSQL 的相关技术** - **分布式事务管理** NewSQL 数据库通过两阶段提交(Two-Phase Commit, 2PC)或 Paxos、Raft 等一致性协议来协调跨节点的事务操作,确保全局一致性[^7]。 - **分片(Sharding)** 数据分片是 NewSQL 实现水平扩展的核心技术之一。通过将数据分散到多个节点上,每个节点只负责部分数据的存储和处理,从而提升整体性能[^8]。 - **智能优化器** NewSQL 数据库内置了复杂的查询优化器,能够根据数据分布和查询模式选择最优的执行计划,进一步提升查询效率[^9]。 ```python # 示例代码:一个简单的分布式事务示例 class DistributedTransaction: def __init__(self, nodes): self.nodes = nodes def commit(self): for node in self.nodes: if not node.prepare(): return False for node in self.nodes: node.commit() return True def rollback(self): for node in self.nodes: node.rollback() ``` #### 4. **典型 NewSQL 数据库** - **Google Spanner** Google Spanner 是一个全球分布式的 relational 数据库,支持强一致性和无限扩展能力,广泛应用于 Google 内部的关键业务系统[^10]。 - **CockroachDB** CockroachDB 是一个开源的分布式 SQL 数据库,基于 Google Spanner 的设计理念,提供了高可用性和自动负载均衡功能[^11]。 - **TiDB** TiDB 是一款兼容 MySQL 协议的分布式数据库,结合了传统数据库的易用性和分布式系统的可扩展性,适用于 OLTP 和 OLAP 场景[^12]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值