SQL与NoSQL

一,关系数据库(RDB)

    关系型数据库作为传统的数据库,支持完整的ACID属性,其中声明式的SQL语法屏蔽了底层的实现细节,同时关系数据模型也符合人的正常思维逻辑,因此在各种应用中关系型数据库都占据主导位置。常见的RDB数据库包括Mysql,Oracle,Sql server,PgSql,SQLite,Mysql分支MariaDB等。


关系型数据库优点多多,但是在现今的互联网环境下慢慢的暴露出其弊端,包括:

  • 无法存储数据结构

  • 表结构固定,扩展性差

  • 大数据量下的 I/O 性能差

  • 全文检索功能弱


二,非关系数据库(NoSQL)

    NoSQL是说Not Only SQL,非关系型数据库舍弃了ACID属性中的一个或多个,因此NoSQL也并非银弹,只能作为关系型数据库的补充,或者适用于特定的业务场景。

扫描二维码关注公众号,回复: 3357467 查看本文章

    常见的NoSQL包含以下类别,基本上都是为了补充RDB数据库的不足而产生:

  • K-V 数据库:解决了RDB数据库无法存储数据结构的弊端,以 Redis 为代表

  • 文档数据库:解决了RDB数据库表结构扩展性差的文档,以 MongoDB 为代表

  • 列式数据库:解决了RDB数据库在大数据场景下的I/O性能问题,以 HBase 为代表

  • 全文检索引擎:补充了RDB数据库全文检索能力,以 ES 为代表


三,分散式存储系统(DRDB

    留待观察,官网


四,NoSQL的历史轨迹

    借用网上的一张图来说

lkG9Vm8.jpg

现在应该再加上 New SQL 了应该。



猜你喜欢

转载自blog.51cto.com/13975879/2285718