当前位置:  开发笔记 > 编程语言 > 正文

MongoDB(一)——简单介绍

这两天简单学习了一下MongoDB数据库,属于NoSQL类型数据库的一种,先简单宏观的看一下NoSQL的相关知识和MongoDB的基础知识。         NoSQL是NotOnlySQL的缩写,它指的是非关系型数据库,即

        这两天简单学习了一下MongoDB数据库,属于NoSQL类型数据库的一种,先简单宏观的看一下NoSQL的相关知识和MongoDB的基础知识。

 

         NoSQLNot Only SQL的缩写,它指的是非关系型数据库,即有别于Oracle,mysql,sqlserver等常用的关系型数据库。它是以key-value形式存在,即我们熟悉的JSON数据形式。

 

        发展:NoSQL随着互联网Web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模数据量和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,NoSQL也就是为了应付这些问题而出现,并不断发展着。最开始是google公司的Bigtable,淘宝数据平台的Tair,视觉中国网站的MongoDB等都代表NoSQL的不断发展。

  

         NoSQL发展迅速的原因:随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求。虽然关系型数据库已经在业界的数据存储方面占据不可动摇的地位,但是由于其天生的几个限制,使其难以满足以上的几个需求:扩展困难,读写慢,成本高,有限的支撑容量。但是NoSQL关注的对数据高并发读写和对海量数据的存储等,与关系型数据库相比,它们在架构和数据模型方面做了削弱,而在扩展和并发等方面做了增强突出。

  

         特点:非关系型的,分布式的,开源的,水平可扩展的。

 

         优点:扩展简单,读写更加快速,成本更加低廉,灵活的数据模型。

 

         不足:不提供的对SQL的支持,支持的特性不够丰富,现在的产品相比关系型数据库不够成熟。

 

        总而言之NoSQL的出现是紧随时代的步伐——大数据,云计算而诞生,并不断发展的,是处在一个成长中的。下边简单看一下它的比较成熟的一个产品MongoDB的简单介绍。

 

      

    MongoDB 的名称取自“humongous” (巨大的) 的中间部分,足见mongodb 的宗旨在处理大量数据上面。是一个可扩展、高性能的下一代数据库,由 C++语言编写,旨在为web 应用提供可扩展的高性能数据存储解决方案。


        Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中每一条记录都是一个Document对象。MongoDB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。

 

        好,看一下它有什么特性,根据这些特性我们可以选择什么时候用它:高性能、易部署、易使用,存储数据非常方便是它的主要特点:

?模式自由,支持动态查询、完全索引,可轻易查询文档中内嵌的对象及数组

?面向文档存储,易存储对象类型的数据, 包括文档内嵌对象及数组

?高效的数据存储,支持二进制数据及大型对象(如照片和视频)

?支持复制和故障恢复;提供了主-从、主-主模式的数据复制及服务器之间的数据复制

?自动分片以支持云级别的伸缩性,支持水平的数据库集群,可动态添加额外的服务器

 

  适用场景:

?适合作为信息基础设施的持久化缓存层

?适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性

?Mongo 的 BSON 数据格式非常适合文档化格式的存储及查询

?适合由数十或数百台服务器组成的数据库。因为 Mongo 已经包含了对 MapReduce 引擎的内置支持

  不适用场景:

?要求高度事务性的系统

?传统的商业智能应用

?  复杂的跨文档(表)级联查询

 

         综上,我们对NoSQL,MongoDB有了个宏观的理解,知道NoSQL出现并不断发展状态的原因,MongoDB的使用范围,长处短处等,这对于我们对此款软件的认识非常重要,关系到我们技术选择的一关。就是认识人一样,我们是从整体容貌开始,然后随着不断的深入,在观察他们细节外貌,行为方式,生活习惯等等,学习一门技术也是这样,先了解他了,然后在开始一点点的学习技术,并随着使用次数的增多,不断的加深理解,不断的升华。

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有