zoukankan      html  css  js  c++  java
  • 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分离. 

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

     

  • 相关阅读:
    springboot常见应用属性
    springboot日志
    springboot注解
    2018年5月26日笔记
    LAMP环境搭建与配置
    2018年5月24日笔记
    2018年5月22日笔记
    2018年5月19日笔记
    2018年5月17日笔记
    2018年5月15日笔记
  • 原文地址:https://www.cnblogs.com/codingforum/p/12931481.html
Copyright © 2011-2022 走看看