前端之家收集整理的这篇文章主要介绍了
NoSql: MongoDB简介,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
真理局限性:没有任何工具能应对所有问题 没有任何一个数据库能满足所有的应用场景
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案MongoDB现在已经被国内很多网站用来记录网站的日志。MongoDB也属于内存数据库,它会自动将一些数据缓存到内存中,这个我想也是大家平时自己会去做的事情,毕竟占内存总比占cpu好,MongoDB支持分布式部署,这样我们可以分多台服务器来进行部署。注:MongoDB不建议部署在windows 32的机器上,当数据超过2G的时候会出问题,官方建议安装在windows 64位或linux上。相对于关系性数据库来说,它的安全性就大打折扣了,所以我们应该有选择性的使用,譬如网站的日志记录,网站访问统计等可以使用MongoDB来进行数据存储。
MongoDB的特色在于支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,并实现了存储节点的自动sharding管理等配套功能;以及由于MongoDB是分布在多个文件中,当数据量远大于内存时,数据分布在足够多文件时确保性能。
MongoDB 特性:
-
面向集合的存储:适合存储对象及JSON形式的数据。
-
动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
-
完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
-
查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。
-
复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
-
高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。
-
自动分片以支持云级别的伸缩性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。
-
模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
-
支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程序。
-
不支持符合事务控制能力
-
支持单文件的原子操作