写点什么

无模式数据库 MongoDB 1.0 版发布

  • 2009-09-03
  • 本文字数:990 字

    阅读完需:约 3 分钟

Mongo 是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键 / 值存储方式。Mongo 使用 C++ 开发,提供了以下功能:

  • 面向集合的存储:适合存储对象及 JSON 形式的数据。
  • 动态查询:Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象及数组。
  • 完整的索引支持:包括文档内嵌对象及数组。Mongo 的查询优化器会分析查询表达式,并生成一个高效的查询计划。
  • 查询监视:Mongo 包含一个监视工具用于分析数据库操作的性能。
  • 复制及自动故障转移:Mongo 数据库支持服务器之间的数据复制,支持主 - 从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
  • 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。
  • 自动分片以支持云级别的伸缩性(处于早期 alpha 阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。

MongoDB 的主要目标是在键 / 值存储方式(提供了高性能和高度伸缩性)以及传统的 RDBMS 系统(丰富的功能)架起一座桥梁,集两者的优势于一身。根据官方网站的描述,Mongo 适合用于以下场景:

  • 网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  • 缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由 Mongo 搭建的持久化缓存层可以避免下层的数据源过载。
  • 大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
  • 高伸缩性的场景:Mongo 非常适合由数十或数百台服务器组成的数据库。Mongo 的路线图中已经包含对 MapReduce 引擎的内置支持。
  • 用于对象及 JSON 数据的存储:Mongo 的 BSON 数据格式非常适合文档化格式的存储及查询。

自然,MongoDB 的使用也会有一些限制,例如它不适合:

  • 高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
  • 传统的商业智能应用:针对特定问题的 BI 数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
  • 需要 SQL 的问题

MongoDB 支持 OS X、Linux 及 Windows 等操作系统,并提供了 Python,PHP,Ruby,Java 及 C++ 语言的驱动程序,社区中也提供了对 Erlang 及.NET 等平台的驱动程序。

如果您对 MongoDB 感兴趣,可访问其官方网站了解更多信息。

2009-09-03 06:289417
用户头像

发布了 157 篇内容, 共 54.6 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

都2020年了,你竟然还在搞Android开发?我劝你早点认清现实吧

android 程序员 移动开发

阿里巴巴:-给你一个Demo-你如何快速定位ANR

android 程序员 移动开发

跨平台新潮!打脸,Flutter被放弃了?

android 程序员 移动开发

郭霖说Jetpack新成员:App-Startup一篇就懂

android 程序员 移动开发

金三银四Android面试的一些感受,附加面试题

android 程序员 移动开发

还原腾讯的一场 30K—50K 的 Android 高工面经

android 程序员 移动开发

还在因 JDK 兼容问题发不同 JAR 包做兼容?MRJAR 了解一下?

android 程序员 移动开发

那些三十五岁失业的安卓程序员,后来都干什么去了?

android 程序员 移动开发

金九银十,你需要的不仅仅只是大厂面试题,记得把每一次面试当做经验积累!

android 程序员 移动开发

阿里、华为、字节跳动,大厂面试算法题

android 程序员 移动开发

阿里技术分享:APP启动提速方法总结

android 程序员 移动开发

阿里面试官:说说多线程并发问题

android 程序员 移动开发

这套Github上10K+star学习笔记,可以帮你搞定95%以上的Android面试

android 程序员 移动开发

这是你从未见过的组件库----手写一款女朋友欲罢不能的Android-手绘风格组件

android 程序员 移动开发

TCP/IP中的通信,三次握手是如何工作的

卢卡多多

三次握手 11月日更

这里有一份史上最详细仿QQ未读消息拖拽粘性效果的实现,快来收藏!

android 程序员 移动开发

迷茫的程序员

android 程序员 移动开发

架构实战营模块毕业总结

seawolflin

架构实战营

那匆匆2014年,明明想静静

android 程序员 移动开发

金九银十面经分享,1-3年的Android开发工程师看过来(已拿offer)

android 程序员 移动开发

阿里面试官:Android面试这些原理都给我讲明白了,最低都是20k起步!

android 程序员 移动开发

07 K8S 之命令行应用编排

穿过生命散发芬芳

k8s 11月日更

身为一位程序员:你是否思考过自己想成为什么级别的程序员?

android 程序员 移动开发

数据产品内功-埋点

第519区

数据仓库 数据产品 埋点

金九银十面经分享,1-3年的Android开发工程师看过来(已拿offer)(1)

android 程序员 移动开发

链表问题不会做?LC狂刷50道链表算法总结出这9道典型题,套路很简单(二

android 程序员 移动开发

跨进程通讯Binder的onTransact方法一定在binder线程池的binder线程中执行吗?

android 程序员 移动开发

跳槽必备:深挖Android技术

android 程序员 移动开发

遭遇技术瓶颈?分享Android 资深架构师的成长之路(技术详细介绍)

android 程序员 移动开发

算法入门-归并排序

ES_her0

11月日更

金九银十跳槽季余温过后,记录以往走过的面试经历

android 程序员 移动开发

无模式数据库MongoDB 1.0版发布_架构_赵劼_InfoQ精选文章