一、NoSQL介绍
1.简介
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。
在现代的计算系统上每天网络上都会产生庞大的数据量,这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理,还有很多数据是由分关系型数据库处理的
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
2.为什么使用nosql
关系型数据库数据要求严格,有些数据用非关系型数据库存储更加方便
今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL 数据库的发展却能很好的处理这些大的数据。
二、MongoDB 简介
1.介绍
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组
json
bjson
{id:"1"}
2.mongoDB与MySQL对比
1)对比
mysql | mongoDB |
---|---|
库 | 库 |
表 | 集合 |
字段 | 键值 |
真实数据行 | 文档 |
2)mysql中的数据
id | name | age |
---|---|---|
1 | qiudao | 18 |
2 | egon | 99 |
3)MongoDB数据
1){id:1,name:qiudao,age:18}
2){id:2,name:egon,age:99,sex:nan}
4)区别
1.数据结构不同
2.数据库添加数据,如果字段不存在则报错
3.MongoDB添加数据可以创建额外字段
4.MongoDB不需要提前创建好数据库和表,可以直接写入数据,会自动创建
3.MongoDB特点:
1.MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
2.你可以在MongoDB记录中设置任何属性的索引来实现更快的排序。
3.水平扩展能力强
4.Mongo支持丰富的查询表达式。(CRUD)
5.MongoDB支持各种编程语言: RUBY,PYTHON,JAVA,C++,PHP,C 等多种语言。
6.MongoDB安装简单
7.高性能:内存数据库,支持持久化
8.高可用性:副本集
9.支持多种存储引擎
4.MongoDB的使用场景
1.游戏场景:
1)存储游戏的相关信息,用户的用户名,排行榜,积分榜
2.物流:
1)使用MongoDB存储定单信息,运送过程中会记录位置不断更新
2)查询历史订单,直接显示所有内容
3)外卖
3.社交场景:
1)使用集合的方式存储用户信息,取交集,并集
2)附近的人,摇一摇
4.电商:
1)使用MongoDB存储有特殊属性字段的数据可以全部放在一个库里面
5.直播:
1)使用MongoDB存储特别节日的礼物信息