0
点赞
收藏
分享

微信扫一扫

MySQL升级版、分布式MySQL、MySQLPlus——TiDB、SQL,NoSQL,NewSQL比较、为什么需要NewSQL?

墨春 2022-01-14 阅读 26

MySQL升级版、分布式MySQL、MySQLPlus——TiDB

TiDB官网:

https://pingcap.com/index.html

不同数据库特点:

  • 传统关系型数据库历史比较久,目前RDBMS的代表为Oracle、MySQL、PostgreSQL,在数据库领域也是“辈份”比较高的,其广泛应用在各行各业,RDBMS大多为本地存储或共享存储。

  • 但是此类数据库存在着一些问题,如自身容量的限制。随着业务量不断增加,容量渐渐成为瓶颈,此时DBA会通过多次的库表sharding,以此来缓解容量问题。大量的分库分表,不仅耗费了大量人力,还使得业务访问数据库的路由逻辑变得复杂。除此之外,RDBMS伸缩性比较差,通常集群扩容缩容成本较高,且不满足分布式的事务。

  • NoSQL类数据库的代表为Hbase、Redis、MongoDB、Cassandra等,这类数据库解决了 RDBMS伸缩性差的问题,集群容量扩容变得方便很多,但是由于存储方式为多个KV存储,所以对SQL的兼容性就大打折扣。对于NoSQL类数据库来说,只能满足部分分布式事务的特点。

  • NewSQL领域的代表是Google的spanner和F1,其号称可以实现全球数据中心容灾,且完全满足分布式事务的ACID,但是只能在Google云上使用。

SQL,NoSQL,NewSQL比较

  1. 关系型数据库(RDBMS,即SQL数据库)
商业软件: Oracle,DB2
开源软件:MySQL,PostgreSQL
单机版本已经很难满足海量数据的需求
  1. NoSQL
NoSQL = Not Only SQL,意即“不仅仅是SQL,提倡运用非关系型的数据存储
普遍选择牺牲掉复杂 SQL 的支持及 ACID 事务换取弹性扩展能力
通常不保证强一致性的(支持最终一致)

Ø 主要分类

  • 键值(Key-Value)数据库:如 MemcacheDB,Redis

  • 文档存储:如 MongoDB

  • 列存储:方便存储结构化和半结构化数据,并做数据压缩,对某几列的查询有非常大的IO优势: 如 HBase,Cassandra

  • 图数据库:存储图关系(注意:不是图片)。如 Neo4J

  1. NewSQL
针对OLTP的读写,提供与NOSQL相同的可扩展性和性能,同时能支持满足ACID特性的事务,即保持NoSQL的高可扩展和高性能,并且保持关系模型

为什么需要NewSQL

​ NoSQL 不能完全取代 RDBMS

​ 单机RDBMS 无法满足性能需求

​ 使用“单机RDBMS + 中间件”方式,在中间件层很难解决分布式事务、高可用问题

Ø NewSQL设计架构

Ø 代表产品

OLTP和OLAP

OLTP

OLAP

TiDB简介

举报

相关推荐

0 条评论