MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
是世界上目前用的最广泛的nosql数据库
noSql 翻译过来 not only sql 不仅仅是sql 他就是一个非关系型数据库
它的特点:高性能、易部署、易使用,存储数据非常方便。
非关系型数据库从严格意义上说不是一种数据库,应该是一种结构数据化存储方法的集合
mongodb的优点
1/面向文档储存的数据库(BSON格式存储)
BSON是10gen(mongodb)公司开发的一种数据格式
BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。
BSON与JSON相比的优点。
1.更快的遍历速度
对JSON格式来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过一个文档进行数据读取,需要对此文档进行扫描才行,需要进行麻烦的数据结构匹配,比如括号的匹配。(整个结构进行遍历)
BSON对JSON的一大改进就是,它会将JSON的每一个元素的长度存在元素的头部,这样你只需要读取到元素长度就能直接seek到指定的点上进行读取了。(直接跳到指定长度值)
2.操作更简易
对JSON来说,数据存储是无类型的,比如你要修改基本一个值,从9到10,由于从一个字符变成了两个,所以可能其后面的所有内容都需要往后移一位才可以。
而使用BSON,你可以指定这个列为数字列,那么无论数字从9长到10还是100,我们都只是在存储数字的那一位上进行修改,不会导致数据总长变大。当然,在MongoDB中,如果数字从整形增大到长整型,还是会导致数据总长变大的。(以列的形式声明进行存储)
3.增加了额外的数据类型
JSON是一个很方便的数据交换格式,但是其类型比较有限。
BSON在其基础上增加了“byte array”数据类型。这使得二进制的存储不再需要先base64转换后再存成JSON。大大减少了计算开销和数据大小。
缺点:BSON相对JSON来说也并没有空间上的优势,比如对{“field”:7},在JSON的存储上7只使用了一个字节,而如果用BSON,那就是至少4个字节(32位)
目前在10gen的努力下,BSON已经有了针对多种语言的编码解码包。并且都是Apache 2 license下开源的。并且还在随着MongoDB进一步地发展。
2/具有丰富的查询指令
二十多条查询指令
3/支持索引
可以通过索引查找某一个集合某一个表里的数据
4/具有分片系统
数据分片,将整体数据分摊在多个存储设备上,这样每个存储设备的数据量相对就会小很多,以此满足系统的性能需求
5/无模式
无模式:各种形式的NoSQL数据库有个共同点,那就是它们都没有模式。
mongodb的缺点
1/占用空间非常大
解析格式导致占用空间很大
2/不支持事务
事务:对数据库里的数据更新或者访问的一个方法。操作数据需通过指令完成。
3/目前已经不维护32位的系统的了
浙公网安备 33010602011771号