• 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单机可靠性不太好,宕机可能丢失一段时间的数据

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

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

  • 相关阅读:
    编码和解码总结
    编码和解码程序例
    IO流字节流输入输出格式
    递归经典题
    ArrayList去重
    集合
    接口文档
    Vue项目零碎知识(全局js,css配置,element-UI,bs使用, img动态配置,js数组)
    djang项目中的疑问及解决办法(ValueError: Invalid model reference 'apps.user.User'. String model references must be of the form 'app_label.ModelName'.)
    Django项目中出现的错误及解决办法(ValueError: Dependency on app with no migrations: customuser)
  • 原文地址:https://www.cnblogs.com/chy2055/p/5145391.html
Copyright © 2020-2023  润新知