zoukankan      html  css  js  c++  java
  • 初识MongoDB

    初识MongoDB
    BY 孙 权 · 2014年8月8日
    
    到了新公司,没想到公司有用Mongo数据库,这让从未接触过MongoDB的我有点手足无措,只能恶补了。
    
    前言:
    2010年,NoSQl在国内掀起了一股热潮,其中风头最大的莫过于MongoDB了。越来越多的公司准备或已经将MongoDB投放到生产环境中,很多创业团队也将MongoDB作为自己的首选数据库,创造出眼花缭乱的互联网应用。
    简介: 
    特性:强大、灵活、可扩展。它扩展了关系型数据库的众多有用功能,如辅助索引、范围查询(range query)、和排序。MongoDB功能非常丰富,内置支持MapReduce式聚合,支持地理空间索引。此外,MongoDB致力于容易上手、便于使用。对于开发者,MongoDB有非常友好的数据模型;对于管理者,MongoDB的配置选项非常轻松。目前绝大多数语言已经支持MongoDB,并且附有强大的驱动程序。MongoDB自己也有一个JavaScript Shell,完美支持js,并且配合MongoDB做了一些易于操作数据库的语法。
    丰富的数据模型:
    MongoDB是面向文档的数据库,不是关系型数据库。因此,MongoDB有很强的扩展性。所谓的面向文档的数据模型就是关系型的行替换成MongoDB的‘文档’。面向文档的数据模型可以将文档或数组内嵌进来,所以用一条记录就可以表示非常复杂的层次关系。符合面向对象的开发模式。
    MongoDB没有模式:文档的键不用事先定义,也不用固定不变。由于没有模式需要更改,通常不需要大量迁移数据。不必将所有数据都放在一个模子里,应用层可以很方便的增加或者删除键。所以开发者也可以很容易的变更数据模型。
    容易扩展:
    MongoDB设计之初就考虑了扩展的问题,面向文档的数据模型使其可以在多台服务器之间分割数据,并且可以平衡集群之间的数据和负载,自动重排文档。这样开发者就可以专注开发应用,而不用考虑数据库负载。若需增加存储空间或提升性能,只是增加一台或几台机器即可,然后MongoDB处理剩下的事。
    丰富的功能:
    索引:MongoDB支持辅助索引 ,能够进行多种快速查询,也能提供唯一的、复合的及地理空间索引功能。
    存储JS:开发人员不必在使用存储功能了,可以在服务器端存取JS函数或值。
    聚合:MongoDB支持MapReduce和其他聚合工具。
    固定集合:集合的大小是有上限的,这对某些数据(比如日志)特别有用。
    文件存储:MongoDB使用一种容易使用的协议储存大型文件和文件的元数据。
    有些关系数据库的常见功能MongoDB并不支持,比如联接(join)和复杂的多行事物。这样的架构主要是考虑MongoDB的扩展性,因为这两个功能很难在一个分布式系统上实现。
    卓越的性能:
    MongoDB的主要目标就是具有卓越的性能,这样也极大的影响了设计的决策。MongoDB使用MongoDB传输协议作为与服务器交互的主要工具(常用的网络协议需要更多的开销,如HTTP/REST),它对文档进行动态填充,遇分配数据空间,用空间换取性能。默认的存储引擎使用了内存映射文件,将内存管理工作交与操作系统。动态查询优化器会“记住”执行查询速度最快的方式。MongoDB尽可能的将服务器处理逻辑交与客户端(驱动程序或用户应用程序)。这样的设计获得了非常好的性能。
    管理简便:
    MongoDB尽量让服务器自治来简化数据库的管理。除了开启数据库,几乎没有别的操作。如果服务器挂掉了,MongoDB会自动切换掉备份的机器上。在分布式系统上,集群只知道有新增的节点,就会自动集成并配置新节点。
    
    转载请注明出处,原文地址:http://www.sundabao.com/%E5%88%9D%E8%AF%86mongodb/
  • 相关阅读:
    matplotlib数据可视化之柱形图
    xpath排坑记
    Leetcode 100. 相同的树
    Leetcode 173. 二叉搜索树迭代器
    Leetcode 199. 二叉树的右视图
    Leetcode 102. 二叉树的层次遍历
    Leetcode 96. 不同的二叉搜索树
    Leetcode 700. 二叉搜索树中的搜索
    Leetcode 2. Add Two Numbers
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/archoncap/p/5307910.html
Copyright © 2011-2022 走看看