zoukankan      html  css  js  c++  java
  • MongoDB(1)----基础概念

    在这里插入图片描述

    1.什么是MongoDB?

      MongoDB是由C++语言实现的一个基于分布式文件存储的开源数据库。旨在为Web应用提供可扩展的高性能数据存储解决方法。它介于关系型数据库(Sql)和非关系型数据库(NoSql)之间。

    2.MongoDB数据存储结构?

      MongoDB将数据存储为一个文档,以键值对的形式(Key:Value结构)作为其数据结构。如下图所示:
    在这里插入图片描述

    3.MongoDB体系结构?

    MongoDB因为其数据以文档的形式进行存储,所以与我们所熟知的MySql不同:

    在这里插入图片描述
      MongoDB中最小的存储单位就是文档(document)对象,也就是关系型数据库中的行。数据以BSON(Binary-JSON:与JSON一样,是一种二进制的JSON格式。但是BSON有JSON没有的数据类型,如:Date和BinDate类型)。

    4.MongoDB优缺点?

    优点:

    1)可以非常方便的为数据建立索引
    2)可以通过网络或者本地创建数据镜像 ,使得MongoDB具有更强的扩展性
    3)数据面向文档进行存储,操作起来简单
    4)不存在Sql注入问题
    5)支持大容量的数据存储
    6)内置Sharding,分片简单
    7)支持故障恢复

    缺点:

    1)不支持事务(事务会影响写入性能,所以不支持不建议使用)
    2)复杂的聚合操作通过mapreduce创建,速度慢
    3)无法进行关联表查询,不适合关系多的数据、
    4)删除数据集合后不会自动释放空间

    5.MongoDB的应用场景?

      当传统的关系型数据库无法满足高并发、海量数据存储访问、灵活扩展、等需求的时候,就可以将MongoDB作为一种解决方案。

    总结:
    1)程序有大量数据存储(TB甚至PB级别)
    2)程序发展速度较快,要求具有快速扩展的能力
    3)程序需要3000以上的QPS
    4)数据模型暂时无法确定
    5)数据价值较低,不需要事务支持和复杂的join操作

      如果有以上几点需求,那么MongoDB则是比较好的解决方案。

    6.MongoDB常用的数据类型?

    数据类型描述
    String 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
    Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
    Boolean 布尔值。用于存储布尔值(真/假)。
    Double 双精度浮点值。用于存储浮点值。
    Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
    Array 用于将数组或列表或多个值存储为一个键。
    Timestamp 时间戳。记录文档修改或添加的具体时间。
    Object 用于内嵌文档。
    Null 用于创建空值。
    Symbol 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
    Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
    Object ID 对象 ID。用于创建文档的 ID。  (每个文档都有)
    Binary Data 二进制数据。用于存储二进制数据。
    Code 代码类型。用于在文档中存储 JavaScript 代码。

    下一篇:MongoDB(2)—MongoDB下载与安装(Windows版本)

  • 相关阅读:
    深入理解递归函数的调用过程
    关于字符串和字符数组的再讨论
    返回字符串的长度
    再写静态变量的有效范围
    一道关于返回指针和返回数组名的面试题
    关于TCP/IP的三次握手和四次挥手解释
    C++面向对象的编程(二)
    关于面试宝典中的检测并修改不适合的继承
    argc和argv
    基于C的文件操作(转)
  • 原文地址:https://www.cnblogs.com/wgty/p/12810432.html
Copyright © 2011-2022 走看看