What's MongoDB?
为了阐明MongoDB的概念,这里首先引用MongoDB的官方描述'MongoDB is an open-source document database, and the leading NoSQL database.',直译过来就是:MongoDB是开源的文档数据库,一个领先的NoSQL数据库(感觉挺NB的).采用C++开发,MongoDB具有面向文档存储(具有动态模式(Schema)JSON风格文档),完善的索引支持,复制及高可用性,自动分片(分布式存储),丰富的查询能力,快速就地更新,支持Map/Reduce(用于数据聚合及处理),提供GridFS(用于存储文件)等特性.总之一句话,MongoDB是一个用来存储,管理类JSON风格数据的数据库管理系统。
MongoDB有什么用?
一般情况下,开发一个Web应用程序通常选用关系型数据库如MySQL,Oracle来保存业务数据.我们习惯了使用SQL操作数据,ORM框架,数据库事务保证关键业务,而且关系型数据库经过多年的应用已十分成熟.为什么又冒出来个MongoDB?它到底有什么特异功能?MongoDB的设计目标是提供高读写吞吐量,高伸缩性和高可用性,采用灵活的数据模型(不同于关系型数据库需要提前定义数据库模式(Scheam),MongoDB是无模式的)可用于存储任意结构数据,从数据模型来说MongoDB适合存储数据模型定义不明确或变动不由自己控制的数据(如互联网日志,Web Service返回数据);MongoDB天生支持分布式存储(能自动对数据进行分片分布式存储),可用于存储海量数据(而关系型数据库在水平扩展方面要逊色很多);由于MongoDB不支持事务所以在将其应用于关键业务数据时需谨慎;综合MongoDB的优劣势,MongoDB适用于海量,非(半)结构化,非关键业务的数据存储(是不是听起来有点耳熟,大量互联网应用的数据都具有这些特点,所以也可以说MongoDB是一款为Web应用和互联网设计的数据库管理系统)。
MongoDB的基本术语
为了更清楚阐述MongoDB的基本术语,下面通过与关系型数据库对应的概念进行比较:
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins |
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|