zoukankan      html  css  js  c++  java
  • mongoDB入门必读

     

    一、概述

      MongoDB是一个基于分布式文件存储的数据库开源项目。

      由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案。

      MongoDB是一个介于关系数据库和非关系数据库之间的产品。

      它支持的数据结构非常松散,是类似jsonbjson格式,因此可以存储比较复杂的数据类型。

      Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 

      MongoDB主要解决的是海量数据的访问效率问题。

      根据官方的文档,当数据量达到50GB以上的时候,Mongo的数据库访问速度是MySQL10倍以上。Mongo的并发读写效率不是特别出色,根据官方提供的性能测试表明,大约每秒可以处理0.5万-1.5次读写请求。

       因为MongoDB主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储,但我也看到有些评论认为GridFS性能不佳,有待验证。 

       最后由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能,因此非常受到欢迎,很多项目都考虑用MongoDB来替代MySQL来实现不是特别复杂的Web应用,比方说why we migrated from MySQL to MongoDB就是一个真实的从MySQL迁移到MongoDB的案例,由于数据量实在太大,所以迁移到了Mongo上面,数据查询的速度得到了非常显著的提升。 

        总结起来,monggDB的特点是高性能、易部署、易使用、存储数据非常方便。

    二、MongoDB的优点

      (1) 高性能、速度非常快(如果你的内存足够的话)

      (2) 没有固定的表结构,不用为了修改表结构而进行数据迁移

      (3) 查询语言简单,容易上手

      (4) 使用Sharding实现水平扩展

      (5) 部署方便

     

    三、使用MongoDB,你得记住以下几点:

      MongoDB 假设你有大磁盘空间

      MongoDB 假设你的内存也足够大于放下你的热数据

      MongoDB 假设你是部署在64位系统上的(32位有2G的限制,试用还可以)

      MongoDB 假设你的系统是little-endian

      MongoDB 假设你有多台机器(并不专注于单机可靠性)

      MongoDB 假设你希望用安全换性能,同时允许你用性能换安全

    MongoDB在下面领域不太擅长

      不太稳定,特别是auto-sharding目前还有很多问题

      不支持SQL,这意味着你很多通过SQL接口的工具不再适用

      持久化,MongoDB单机可靠性不太好,宕机可能丢失一段时间的数据

      相关文档比较少,新功能都有这个问题

      相关人才比较难找,这也是新功能的问题之一 

  • 相关阅读:
    poj 2488 DFS
    畅通工程 并查集模版
    KMP 模板
    poj 1426 DFS
    poj 2528 线段数
    poj 3468 线段数 修改区间(点)
    CVPR2012文章阅读(2)A Unified Approach to Salient Object Detection via Low Rank Matrix Recovery
    如何制定目标
    Saliency Map 最新综述
    计算机视觉模式识别重要会议杂志
  • 原文地址:https://www.cnblogs.com/chy2055/p/5145391.html
Copyright © 2011-2022 走看看