1、概述:

传统的关系型数据库数据存储格式固定,数据表结构变化较为频繁,不容易扩展。在海量数据处理的时候效率会显著变慢。
在数据量特别大,数据的并发性特别高,数据结构比较特别(例如地图的位置坐标)的时候不适合使用关系型数据库
NoSQL数据库用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。
这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
NoSQl中支持丰富的数据结构如可以存储向地理位置的信息等
mongodb是一个开源文档数据库,提供高性能、高可用性和自动扩展的功能。使用C++语言编写的NoSQL数据库。NoSQL中使用最广泛的数据库之一。

2、特点:

高性能 (嵌入式数据模型的支持减少了数据库系统的I / O活动。索引支持更快的查询,并可以包括嵌入文档和数组键。)
高可用(副本集)(复制和故障恢复)
可伸缩(分片集群)(数据量大,扩展方便)
易部署(分片副本集也有第三方工具提供辅助。)
存储数据方便(使用高效的二进制存储,文件存储格式为BSON)等
便于开发:

  • 支持丰富的查询语言、数据聚合、文本搜索、地理空间查询。
  • 可以在服务端执行脚本,直接用js编写某个函数,就可以执行。
  • 支持多种编程语言:ruby、python、java、c++、php、C#等

    3、概念:

    | MySQL | MongoDB | | —- | —- | | database | database | | table | collection | | row | document | | column | field | | primary key | primary key |