前言:
前两天和一个好久不见的同学(高中同桌)聊天,我问他现在从事什么工作,他说程序猿,都干了好几年了,我当时就问他你们现在都用什么数据库啊,他说:你都知道什么?我毫不犹豫的说:SQL Server 。没想到他说垃圾,我又说mysql,他又说垃圾,弄的我很是尴尬,很是尴尬,所以我就问了问现在都有哪些数据库,他给我说了mongodb、oracel、redis、db2。后来又深入的聊了会儿,感觉说的太好了,让我涨知识了。所以打算从mongodb开始学起。
Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如。
什么是Nosql?
全称是 Not Only Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点:非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模web应用通常特性应用如:模式自由、支持简易复制、简单的API、最终的一致性(非ACID)、大容量数据等。NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等
关系型数据库与非关系型数据库的对比:
与关系型数据库相比,MongoDB的优点:
①弱一致性(最终一致),更能保证用户的访问速度:
②文档结构的存储方式,能够更便捷的获取数据。
③内置GridFS,支持大容量的存储。
④内置Sharding。
⑤第三方支持丰富。(这是与其他的NoSQL相比,MongoDB也具有的优势)
当然有优点肯定有缺点:
①mongodb不支持事务操作。
②mongodb占用空间过大。
③MongoDB没有如MySQL那样成熟的维护工具
功能:
面向集合的存储:适合存储对象及JSON形式的数据。
动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。
复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。
大家先简单的认识了mongDB,接下来看看如何安装吧:
(1)Windows版本的MongoDB无需安装,只要解压就能使用了,下载地址:http://www.mongodb.org/downloads
不过需要注意两点:
①:根据业界规则,偶数为“稳定版”(如:1.6.X,1.8.X),奇数为“开发版”(如:1.7.X,1.9.X),所以我们不要总是认为最新版本就是最好的,我们的首选应该是稳定版本的。
②:32bit的mongodb最大只能存放2G的数据,64bit就没有限制。
(2)新建目录“D:\MongoDB”,解压下载到的安装包,找到bin目录下面全部.exe文件,拷贝到刚创建的目录下。
(3)在“D:\MongoDB”目录下新建建立data和logs两个目录,data存放数据,logs存放日志文件。如下图所示:
打开CMD窗口,按照如下方式输入命令:
> d:
> cd D:\MongoDB
> mongod --dbpath D:\MongoDB\data(需要注意的是如果这个exe文件在bin目录下,应该找到bin目录下在输入,否则提示不是内部命令)
在浏览器输入:http://localhost:27017/,可以看到如下提示:
这样就配置成功了。
在下面一篇博客中介绍了,把MongoDB设置成Windows服务的教程,提供给大家。
小结:
这篇博客博客主要是讲了MongoDB的功能,特点,与关系型数据库的对比,以及MongoDB的安装。现在就可以开始MongoDB之旅了。