Mongodb
- 简介
NoSQL 的概念:指的是非关系型数据库。 NOT only sql 的缩写。特别适用于大规模
的数据存储。例如:谷歌或者facebook 每天为用户收集亿万级别的数据,这些数据类型不需要固定的格式,无需多余的操作就可以进行横向扩展。
什么是mongodb?
是C++语言开发,性能比较好,可以为web应用提供扩展的高性能数据存储解决方案。Mongodb将数据存储为一个文档,数据结构由键值(key è value)对组成,文档类似于 json对象,并且字段值可以包含其它文档,即文档可以进行嵌套,还可以是数组,文档数组等等。
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
{“name”:”joho”,”age”:18,”address”:{“country”:”china”,”zip-code”:”10000”}}
Mongodb 是一个介于关系型数据库和非关系型数据之间的产品,是一个最像关系型数据库的非关系型数据库产品。它支持的数据类型非常的松散,多元。存储格式类似json格式,叫bson(二进制Json),因此支持存储的数据更丰富和复杂。
{name:”sue”,
AGE:26,
Status:”A”,
Groups:[“new”,”sports”]
}
MongoDB最大的特点是支持的查询语言非常强大,语法有点类似面向对象的查询语句,几乎可以实现关系型数据库绝大多数功能,并且支持索引。
缺点:不支持连表查询,不支持事务存储过程,不适用于数据间关系比较复杂的数据,一般都是当做数据仓库来使用。
例如:适用于:日志系统,股票数据系统等等
不适用于:电子商务平台,物流系统等等,数据关系复杂的系统。
Mongodb 和 mysql 性能进行比较
前提:分别插入 100万条数据记录,并对其中100个用户并发查询
- Mongodb 概念解析
在mongodb 中基本概念有: 文档 、 集合 、数据库、数据体系
- 文档
文档是mongodb 中最基本的单元,类似于关系型数据库中的行(数据记录),多个键
值对有序的放置在一起的便是一个文档。
Mongodb 中以文档的存储方式记录数据,如一条记录格式如下:
{“username”:”shasha”,”age”:18,”email”:”[email protected]”,’sex’:’男’}
{“username”:”shasha2”,”age”:”18”}
{“username”:”shasha22”}
{name:”sue”,AGE:26,Status:”A”,Groups:[“new”,”sports”]}
注意:1)以上是几个不同的文档,mongodb 是区分大小写的数据类型,第一个文档中18表示数字类型,第二个文档中 age 是字符串类型。
2)每个文档尺寸不能超过16M
3)文档中键/值 对是有序的,值不仅可以在双引号里面的字符串,还可以是其他数据类型,或者是嵌套一个完整的文档。
4)一个文档中不能有重复的键。
2、集合
集合就是一组文档,多个文档组成一个集合,集合类似于mysql里面的表。集合是无模式的,是指在同一个集合中可以包含不同格式的文档,如:
{“username”:”shasha”,”age”:18,”email”:”[email protected]”,’sex’:’男’}
{“username”:”shasha22”}
{“name”:”joho”,”age”:18,”address”:{“country”:”china”,”zip-code”:”10000”}}