newsql与nosql的区别,newsql数据库理论精要 您所在的位置:网站首页 nosql和sql的区别 newsql与nosql的区别,newsql数据库理论精要

newsql与nosql的区别,newsql数据库理论精要

2023-04-11 05:29| 来源: 网络整理| 查看: 265

NewSQL概念几乎是紧跟着NoSQL之后变得火热的。Google Bigtable与AWS Dynamo奠定了NoSQL技术的根基,而Google Spanner&F1则引领了NewSQL技术的发展。本文首先探讨NoSQL与NewSQL的概念与ljddd,随后结合一些业界观点以及两者之间的优缺点对比,来论述各自的应对场景以及未来的演变趋势。本文首发于"NoSQL漫谈(nosqlnotes.com)"。

众所周知,NoSQL已是一个很广泛的概念。现在被大家所广泛认知的NoSQL一词,源自2009年在San Francisco举办的一次Meetup,该Meetup的描述信息如此阐述:

This meetup is about "open source, distributed, non relational databases".

Have you run into limitations with traditional relational databases? Don't mind trading a query language for scalability? Or perhaps you just like shiny new things to try out? Either way this meetup is for you.

传统的RDBMS在Scalability能力上的受限,是促使NoSQL技术出现的一个关键因素。在这次Meetup的主题中,涉及到了Cassandra、HBase、MongoDB、CouchDB、HyperTable等开源技术,而该Meetup描述信息中所提及的"open source, distributed, non relational databases"为NoSQL技术给出了精炼的描述。彼时,SQL几乎是RDBMS的代名词,自然而言的,Non-SQL也成了Non-Relational的代名词。

随着近些年的快速发展,SQL已经逐步被应用在了更广泛的领域,因此,SQL已不再是RDBMS的专属特征,NoSQL技术体系中也引入了SQL能力,因此而演变出来的Not-Only-SQL的概念,虽有自圆其说之嫌,但的确给出了更合理的解读。无论如何,"open source, distributed, non relational databases"关于大多数NoSQL技术边界的定义,也依然是合理的,只是,"open source"是一个可选特征,而"distributed"以及"non relational"却是典型NoSQL技术的基本特征。大多数NoSQL技术,弱化了对ACID语义以及复杂关联查询的支持,采用了更加简洁或更加专业的数据模型,优化了读写路径,从而能够换取更高的读写性能。

NewSQL可以说是传统的RDBMS与NoSQL技术结合之下的产物,如下是Wiki中为NewSQL给出的定义:

NewSQL is a class of modern relational database management systems that seek to provide the same scalable performance of NoSQL systems for online transaction processing (OLTP) read-write workloads while still maintaining the ACID guarantees of a traditional database system

因此,可以将典型NewSQL技术理解成分布式关系型数据库,能够支持分布式事务是一个基本前提。NoSQL与NewSQL在技术栈上有很多重叠,但在是否支持关系型模型及对复杂事务的支持力度上是存在明显区别的。某些地方也将NewSQL划在Not-Only-SQL的ljddd之内,即NewSQL技术也被纳入到NoSQL概念体系中,该说法虽也合理,但使得NoSQL一词过于泛化。

近期,Timescale DB的联合创始人Ajay Kulkarni曾经发表过如下一篇文章:

“Why SQL is beating NoSQL, and what this means for the future of data”

新一代数据库TiDB在国内美团、今日头条的大规模实践也得到进一步验证。

TiDB的技术特性总结为:

协议兼容 MySQL可在线扩展:数据通常要有分片,分片要支持分裂和自动迁移,并且迁移过程要尽量对业务无感知。强一致的分布式事务:事务可以跨分片、跨节点执行,并且强一致。支持二级索引:为兼容 MySQL 的业务,这个是必须的。性能:MySQL 的业务特性,高并发的 OLTP 性能必须满足。跨机房服务:需要保证任何一个机房宕机,服务能自动切换。跨机房双写:支持跨机房双写是数据库领域一大难题,是我们对分布式数据库的一个重要期待

业界的一些传统方案虽然支持分片,但无法自动分裂、迁移,不支持分布式事务,还有一些在传统 MySQL 上开发一致性协议的方案,但它无法实现线性扩展,最终我们选择了与我们的需求最为接近的 TiDB。与 MySQL 语法和特性高度兼容,具有灵活的在线扩容缩容特性,支持 ACID 的强一致性事务,可以跨机房部署实现跨机房容灾,支持多节点写入,对业务又能像单机 MySQL 一样使用。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有