精华内容
下载资源
问答
  • SQL 、 NoSQL 和 NewSQL优缺点比较

    千次阅读 2018-12-17 14:44:16
    SQL作为主要的数据存储方式已经超过40年,并且经历了至少两个指数扩张期:20世纪90年代Web应用程序崛起...在SQL 的发展过程中,产生了许多迭代产品,其中最重要的是SQL,NoSQL和NewSQL — 它们一...

    SQL作为主要的数据存储方式已经超过40年,并且经历了至少两个指数扩张期:20世纪90年代Web应用程序崛起之后,以及在过去十年中由于移动设备爆炸引起的扩张。 因此,越来越小的公司开始发现使用数据库的好处,而像Google这样的互联网巨头则已经将数据单位上升到PB或甚至EB。

    在SQL 的发展过程中,产生了许多迭代产品,其中最重要的是SQL,NoSQL和NewSQL — 它们一起负责绝大部分的数据库市场。

    所以,如果你要选择一个数据库工具,你应该选择哪一个? 其实,没有明确的答案。 不同的人和公司选择不同,这更多地取决于他们对每个特定项目的偏好和相对优势,而不是其中一个对其他所有的直接优势。 那么,这些优点和缺点是什么? 让我们来看一下。

    SQL

    SQL是关系型数据库管理系统(RDBMS),顾名思义,它是围绕关系代数和元组关系演算构建的。 70年代以来,它一直是主要的数据库解决方案,只是最近才有了其他产品的空间。 不管有些人说什么,这意味着它一直能出色地执行广泛的任务。 其主要优点如下:

    • 不同的角色(开发者,用户,数据库管理员)使用相同的语言。
    • 不同的RDBMS使用统一标准的语言。
    • SQL使用一种高级的非结构化查询语言。.
    • 它坚持 ACID 准则 (原子性,一致性,隔离性,持久性),,这些准则保证了数据库尤其是每个事务的稳定性,安全性和可预测性。

    如你所见,许多SQL的好处来源于它的统一性,舒适性和易用性。 即使你只有非常有限的SQL知识(或完全没有,如果需要),你可以在像 online SQL Query Builder 这样的特殊工具帮助下使用它。

    然而,它的缺点使得它非常不适合某些类型的项目。 SQL的主要问题是它难以扩展,因为它的性能随着数据库的变大而快速下降。 分布式也是有问题的。

    NoSQL和NewSQL出现的原因之一是,以前的RDBMS的设计不能满足现代数据库每秒处理的事务数量。 像亚马逊或阿里巴巴等需要处理惊人数据量的巨头,以前的RDBMS会在几分钟内出现问题。

    NoSQL (Not Only SQL)

    NoSQL越来越受欢迎,其中最重要的实现是Apache Cassandra,MongoDB等产品。 它主要用于解决SQL的可扩展性问题。 因此,它是没有架构的并且建立在分布式系统上,这使得它易于扩展和分片。

    然而,这些好处是以放宽ACID原则为代价的:NoSQL采取最终一致性原则,而不是所有四个参数在每个事务中保持一致。 这意味着如果在特定时间段内没有特定数据项的更新,则最终对其所有的访问都将返回最后更新的值。 这就是这样的系统通常被描述为提供基本保证的原因(基本可用,软状态,最终一致性) — 而不是ACID。

    虽然这个方案极大地增加了可用时间和伸缩性,它也会导致数据丢失----这个问题的严重程度取决于数据库服务器的支持情况和应用代码质量.在某些情况下,这个问题十分严重.

    另一个NoSQL出现的问题是现在有很多类型的NoSQL系统,但它们之间却几乎没有一致性.诸如灵活性,性能,复杂性,伸缩性等等特性在不同系统间差别巨大,这使得甚至是专家在他们之间都很难选择.不过,当你根据项目特点作出了合适的选择,NoSQL可以在不显著丢失稳定性的情况下提供一个远比SQL系统更高效的解决方案.

    NewSQL

    NewSQL是一种相对较新的形式,旨在使用现有的编程语言和以前不可用的技术来结合SQL和NoSQL中最好的部分。 NewSQL目标是将SQL的ACID保证与NoSQL的可扩展性和高性能相结合。

    显然,因为结合了过去仅单独存在的优点,NewSQL看起来很有前途; 或许,在未来的某个时候,它将成为大多数人使用的标准。 不幸的是,目前大多数NewSQL数据库都是专有软件或仅适用于特定场景,这显然限制了新技术的普及和应用。

    除此之外,NewSQL在每个方面比较均匀,每个解决方案都有自己的缺点和优势。 例如,SAP HANA可以轻松处理低到中等的事务性工作负载,但不使用本机集群,MemSQL对于集群分析很有用,但在ACID事务上表现出较差的一致性,等等。 因此,在这些解决方案变得真正普及之前,可能还需要一段时间。

    结论

    围绕SQL有许多谬见和误解:例如,SQL已过时,应该尽可能替换为NoSQL或New SQL。 当然,这不是真的。 目前,在三种基本替代方案中没有明确的领导者 - 每一种都有更适合的项目,而在其他情况下不太适合(或完全不适合)。 因此,没有普遍的理想选择。 例如,如果你主要考虑数据库应始终可用于接受新的内容,则应考虑最终一致性解决方案,如Cassandra或Riak。 如果你追求高速缓存SQL,新的缓存数据库比如VoltDB似乎是明智的选择; 等等。

    展开全文
  • newsql

    2019-02-19 13:25:16
    NewSQL概念几乎是紧跟着NoSQL之后变...本文首先探讨NoSQL与NewSQL的概念与范畴,随后结合一些业界观点以及两者之间的优缺点对比,来论述各自的应对场景以及未来的演变趋势。本文首发于"NoSQL漫谈(nosqlnotes.co...

    NewSQL概念几乎是紧跟着NoSQL之后变得火热的。Google Bigtable与AWS Dynamo奠定了NoSQL技术的根基,而Google Spanner&F1则引领了NewSQL技术的发展。本文首先探讨NoSQL与NewSQL的概念与范畴,随后结合一些业界观点以及两者之间的优缺点对比,来论述各自的应对场景以及未来的演变趋势。本文首发于"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的范畴之内,即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 一样使用。

    展开全文
  • TIDB和mysql优缺点对比

    2021-08-06 20:55:13
    分库分表的缺点: 分页查询性能不好,需求聚合多库数据,多次io,内存消耗大。 分布式事务问题 分库之后,想二次扩容,数据迁移等会更复杂 跨库join很难实现 随着newsql数据库出现,分库分表这些问题都得到解决, ...

    最近这几年,公司一直在使用mysql,数据量在千万级以下时,mysql有着非常优秀的性能和稳定性。随着数据增长,单表无法满足业务需求,我们需要使用mycat、shading-jdbc等中间件去实现分库分表。

    分库分表的缺点:

    1. 分页查询性能不好,需求聚合多库数据,多次io,内存消耗大。
    2. 分布式事务问题
    3. 分库之后,想二次扩容,数据迁移等会更复杂
    4. 跨库join很难实现

    随着newsql数据库出现,分库分表这些问题都得到解决,

    newsql特性如下:

    1. SQL支持 (TiDB 是 MySQL 兼容的)
    2. 水平线性弹性扩展
    3. 分布式事务
    4. 跨数据中心数据强一致性保证
    5. 故障自恢复的高可用

    TiDB是国产开源社区使用最广的newsql数据库,兼容mysql协议,大数据水平扩展,方便企业无门槛接入。目前接近30k的star。
    在这里插入图片描述

    TIDB四大核心应用场景

    1. 对数据一致性及高可靠、系统高可用、可扩展性、容灾要求较高的金融行业属性的场景

    众所周知,金融行业对数据一致性及高可靠、系统高可用、可扩展性、容灾要求较高。传统的解决方案是同城两个机房提供服务、异地一个机房提供数据容灾能力但不提供服务,此解决方案存在以下缺点:资源利用率低、维护成本高、RTO (Recovery Time Objective) 及 RPO (Recovery Point Objective) 无法真实达到企业所期望的值。TiDB 采用多副本 + Multi-Raft 协议的方式将数据调度到不同的机房、机架、机器,当部分机器出现故障时系统可自动进行切换,确保系统的 RTO <= 30s 及 RPO = 0。

    1. 对存储容量、可扩展性、并发要求较高的海量数据及高并发的 OLTP 场景

    随着业务的高速发展,数据呈现爆炸性的增长,传统的单机数据库无法满足因数据爆炸性的增长对数据库的容量要求,可行方案是采用分库分表的中间件产品或者 NewSQL 数据库替代、采用高端的存储设备等,其中性价比最大的是 NewSQL 数据库,例如:TiDB。TiDB 采用计算、存储分离的架构,可对计算、存储分别进行扩容和缩容,计算最大支持 512 节点,每个节点最大支持 1000 并发,集群容量最大支持 PB 级别。

    1. Real-time HTAP 场景

    随着 5G、物联网、人工智能的高速发展,企业所生产的数据会越来越多,其规模可能达到数百 TB 甚至 PB 级别,传统的解决方案是通过 OLTP 型数据库处理在线联机交易业务,通过 ETL 工具将数据同步到 OLAP 型数据库进行数据分析,这种处理方案存在存储成本高、实时性差等多方面的问题。TiDB 在 4.0 版本中引入列存储引擎 TiFlash 结合行存储引擎 TiKV 构建真正的 HTAP 数据库,在增加少量存储成本的情况下,可以同一个系统中做联机交易处理、实时数据分析,极大地节省企业的成本。

    1. 数据汇聚、二次加工处理的场景

    当前绝大部分企业的业务数据都分散在不同的系统中,没有一个统一的汇总,随着业务的发展,企业的决策层需要了解整个公司的业务状况以便及时做出决策,故需要将分散在各个系统的数据汇聚在同一个系统并进行二次加工处理生成 T+0 或 T+1 的报表。传统常见的解决方案是采用 ETL + Hadoop 来完成,但 Hadoop 体系太复杂,运维、存储成本太高无法满足用户的需求。与 Hadoop 相比,TiDB 就简单得多,业务通过 ETL 工具或者 TiDB 的同步工具将数据同步到 TiDB,在 TiDB 中可通过 SQL 直接生成报表。

    展开全文
  • NewSQL入门

    2021-06-28 23:05:19
    因此有人提出结合关系型数据库和NoSQL数据库的优点,构建出新型的数据库形式,并称之为“NewSQLNewSQL一般被看作传统关系型数据库的延伸,是在关系型数据库系统的基础上通过吸收NoSQL的优点而形成。NewSQL被描绘...

    NoSQL放弃了关系型数据库的很多特性,这使得传统的关系型数据库使用者感到不便,例如:NoSQL难以实现在线的事务处理业务,NoSQL数据库很多都不支持SQL语言,或者即便可以通过扩展组件来支持SQL语言,也只支持标准SQL语言的一个小的子集。因此有人提出结合关系型数据库和NoSQL数据库的优点,构建出新型的数据库形式,并称之为“NewSQL

    NewSQL一般被看作传统关系型数据库的延伸,是在关系型数据库系统的基础上通过吸收NoSQL的优点而形成。NewSQL被描绘成既支持关系数据模型和强事务机制,也支持分布式并行结构(具有良好的伸缩性和容错性)的数据库形式,以及可以通过SQL语句进行查询等。目前,已经有很多企业宣布在进行NewSQL的设计、开发和使用,也有一些开源软件被发布出来,例如:TiDB等

    从NewSQL的发展现状来看,有两个特点值得注意:一是NewSQL仍缺乏一个权威的定义,其归类也比较模糊,例如:一些文章会将某些内存数据库或者某些关系型数据库的扩展系统归类为NewSQL;二是目前缺少知名度较高的NewSQL产品,这一点从db-engines网站的排名也可以看到。

    从发展趋势上看,由于关系型数据库和NoSQL数据库总会存在“顾此失彼”的难题,因此NewSQL仍然是业界的一个不断探索与完善的重要方向,很多NoSQL数据库的设计者也在尝试提供对SQL语句的支持,以及对事务特性的部分支持。

    总结

    • SQL 与NoSQL都有优缺点,因此尝试融合
    展开全文
  • SQL、NoSQL、NewSQL

    2020-02-26 17:46:14
    SQL、NoSQL、NewSQL优缺点比较 SQL SQL是关系型数据库管理系统(RDBMS),顾名思义,它是围绕关系代数和元组关系演算构建的。 70年代以来,它一直是主要的数据库解决方案,只是最近才有了其他产品的空间。 优点: 1....
  • 本文通过对两种模式关键特性实现原理对比,希望可以尽可能客观、中立的阐明各自真实的优缺点以及适用场景。 NewSQL数据库先进在哪儿? 首先关于“中间件+关系数据库分库分表”算不算NewSQL分布式数据库问题,国外...
  • 最近正好学了ShardingSphere的分库分表,也考虑到了分库分表与NewSQLeader...本文通过对两种模式关键特性实现原理对比,希望可以尽可能客观、中立的阐明各自真实的优缺点以及适用场景。 NewSQL数据库先进在哪儿? 首先
  • 其中MySQL分布式集群包括以下几种集群方式:Proxy,Cluster,Mha,Mgr,基于MySQL协议的NewSQL,如MyCAT,OceanBase不在此范围之内。 (1)简介 (2)应用场景 (3)优点 (4)缺点 (5)备份/持久化方案 5 项目中的...
  • 本文通过对两种模式关键特性实现原理对比,希望可以尽可能客观、中立的阐明各自真实的优缺点以及适用场景。 NewSQL 数据库先进在哪儿? 首先关于“中间件+关系数据库分库分表”算不算 NewSQL 分布式数据库问题,...
  • newsql新品TiDB之计算

    2018-12-27 10:34:05
    对于 Row,可以选择行存或者列存,这两种各有优缺点。TiDB 面向的首要目标是 OLTP 业务,这类业务需要支持快速地读取、保存、修改、删除一行数据,所以采用行存是比较合适的。 对于 Index,TiDB 不止需要支持 ...
  • 本文通过对两种模式关键特性实现原理对比,希望可以尽可能客观、中立的阐明各自真实的优缺点以及适用场景。 一、NewSQL数据库先进在哪儿? 首先关于“中间件+关系数据库分库分表”算不算NewSQL分布式数据库问题,...
  • 本文通过对两种模式关键特性实现原理对比,希望可以尽可能客观、中立的阐明各自真实的优缺点以及适用场景。 NewSQL数据库先进在哪儿? 首先关于“中间件+关系数据库分库分表”算不算NewSQL分布式数据库问题,国外有...
  • 结构化查询语言关系型数据库的优缺点NoSQL数据库的优势有哪些?分布式数据库有哪些特点?CAP理论是什么?相互关系ACID原则是什么?BASE原理与最终一致性NoSQL数据库有哪些?内存数据库是什么?Memcached入门教程...
  • 本文通过对两种模式关键特性实现原理对比,希望可以尽可能客观、中立的阐明各自真实的优缺点以及适用场景。 NewSQL数据库先进在哪儿? 首先关于“中间件+关系数据库分库分表”算不算NewSQL分布式数据库问题,国外有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 520
精华内容 208
关键字:

newsql的优缺点