Mysql vs NoSql vs NewSql

数据库发展至今已经有3代了:

  1. SQL,传统关系型数据库,例如 MySQL
  2. noSQL,例如 MongoDB, Cassandra
  3. newSQL,例如Aurora, HyperScale

Sql

传统关系型数据库的索引一般为B+树,读取数据速度很快,但对比NoSql写入速度比较慢.

Sql优势在于支持事务,隔离级别,锁等但是随着数据量的越来越大,sql面临许多效率瓶颈, 比如过于强大的sql语句功能效率过慢. 数据量大的时候需要分库分表,但是分库分表又很难支持事务,join和排序等功能.

NoSql

后来 noSQL 出现了,放弃了传统SQL的强事务保证和关系模型,重点放在数据库的高可用性和可扩展性。

noSQL 的主要优势:

  • 高可用性和可扩展性,自动分区,轻松扩展
  • 不保证强一致性,性能大幅提升
  • 没有关系模型的限制,极其灵活

noSQL 问题在于不保证强一致性,不支持 SQL 语句,没有强大的事务等. 但NoSql索引一般基于分层级的LSM树,相较于Sql来说牺牲了读的速度但写的速度大大提高了.

NewSql

newSQL 提供了与 noSQL 相同的可扩展性,而且仍基于关系模型,还保留了极其成熟的 SQL 作为查询语言,保证了ACID事务特性。

简单来讲,newSQL 就是在传统关系型数据库上集成了 noSQL 强大的可扩展性。

newSQL 的主要特性:

  • SQL 支持,支持复杂查询和大数据分析。
  • 支持 ACID 事务,支持隔离级别。
  • 弹性伸缩,扩容缩容对于业务层完全透明。
  • 高可用,自动容灾, 分布式

newSql主要是对sql做了一些底层分离, 如存储和计算层的分离, 计算写入存储时直接写log, log is database,存储层自己拿log做存储,伸缩扩展,并行,异步等等优化.

还有log和data也可以做一层decoupled分离. 

读写也可以彻底分离, 扩展性能更强了.

 

Mysql vs NoSql vs NewSql

上一篇:MYSQL:大量数据的插入更新


下一篇:MacOS安装mysql